Linux数据库篇、第一章_02_MySQL的使用增删改查

Linux_数据库篇

欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神!

题目:MySQL的使用增删改查

版本号 : 1.0,0
作者 : @老王要学习
日期 : 2025.05.12
适用环境: Centos7

文档说明

本文档为《Linux 数据库篇 - MySQL 的使用增删改查》,版本 1.0.0,作者 @老王要学习,适用于 Centos7 环境。详细介绍了在 Linux 系统中使用 MySQL 进行数据库和表的创建、数据的插入、查询、修改及删除操作,包含操作步骤、代码示例与结果分析

环境准备

硬件要求

  • 服务器: 2核CPU、2GB内存,20GB硬盘空间
  • 网络: 确保服务器具有固定的IP地址,并且防火墙允许FTP端口(默认22端口)的通信

软件要求

  • 操作系统:Centos7
  • FTP软件:SecureCRT
  • 软件包:MySQL5.7.44

一、创建表(CREATE TABLE)

1.0进入数据库

复制代码
#启动MySQL服务
/etc/init.d/mysqld start

#进入MySQL数据库
mysql -uroot -p123

1.1创建数据库

复制代码
CREATE DATABASE laowang;
#结果如下: 
Query OK, 1 row affected (0.00 sec)

1.2查看所以数据库

复制代码
SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| laowang            |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

1.3进入laowang数据库

复制代码
USE laowang
#输出如下: 
Database changed

1.4创建表

复制代码
CREATE TABLE laowang (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    age INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
#结果如下: 
Query OK, 0 rows affected (0.00 sec)

1.5创建表结构分析

id

字段 功能
INT 类型为整数
PRIMARY KEY 是主键
AUTO_INCREMENT 自动递增

username

字段 功能
VARCHAR(50) 字符串类型,最大长度50
NOT NULL 不能为空

email

字段 功能
VARCHAR(100) 字符串类型,最大长度100
UNIQUE 必须唯一

age

字段 功能
INT 整数类型
可以为空(默认设置)

created_at

字段 功能
TIMESTAMP 时间戳类型
CURRENT_TIMESTAMP 默认值为当前时间,即记录插入时自动设置为当前时间

1.6查看所有表

复制代码
SHOW TABLES;
+-------------------+
| Tables_in_laowang |
+-------------------+
| laowang           |
+-------------------+
1 row in set (0.00 sec)

二、插入数据(INSERT)

2.1单条数据插入

复制代码
INSERT INTO laowang (username, email, age)
    -> VALUES ('wang', '[email protected]', 26);
#输出如下: 
Query OK, 1 row affected (0.01 sec)

2.2多条数据插入

复制代码
INSERT INTO laowang (username, email, age)
    -> VALUES
    -> ('zhang', '[email protected]' ,28),
    -> ('li', '[email protected]' ,36);
#输出如下: 
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

2.3插入数据分析

字段 功能
INSERT INTO laowang 在laowang表中添加数据
(username, email , age) (添加姓名,邮箱,年龄)
VALUES 插入一行或者多行数据
('wang', '[email protected]', 26); (姓名为wang,邮箱为[email protected],年龄为26)结束符

三、查询数据(SELECT)

3.1查询所有字段

复制代码
SELECT * FROM laowang;
#结果如下: 
+----+----------+---------------+------+---------------------+
| id | username | email         | age  | created_at          |
+----+----------+---------------+------+---------------------+
|  1 | wang     | [email protected]  |   26 | 2025-05-12 10:31:50 |
|  2 | zhang    | [email protected] |   28 | 2025-05-12 10:35:25 |
|  3 | li       | [email protected]    |   36 | 2025-05-12 10:35:25 |
+----+----------+---------------+------+---------------------+
3 rows in set (0.00 sec)

3.2查询指定字段

复制代码
SELECT username, email FROM laowang;
#输出如下: 
+----------+---------------+
| username | email         |
+----------+---------------+
| wang     | [email protected]  |
| zhang    | [email protected] |
| li       | [email protected]    |
+----------+---------------+
3 rows in set (0.00 sec)

3.3根据条件查询

复制代码
#查看laowang表中,年龄大于26,且名字l开头的字段
SELECT * FROM laowang WHERE age > 26 AND username LIKE 'l%';
#输出如下: 
+----+----------+------------+------+---------------------+
| id | username | email      | age  | created_at          |
+----+----------+------------+------+---------------------+
|  3 | li       | [email protected] |   36 | 2025-05-12 10:35:25 |
+----+----------+------------+------+---------------------+
1 row in set (0.00 sec)

3.4排序与分页

复制代码
#查询laowang表中按age降序排列后的第2-3条记录
 SELECT * FROM laowang ORDER BY age DESC LIMIT 2 OFFSET 1;
#输出如下: 
+----+----------+---------------+------+---------------------+
| id | username | email         | age  | created_at          |
+----+----------+---------------+------+---------------------+
|  2 | zhang    | [email protected] |   28 | 2025-05-12 10:35:25 |
|  1 | wang     | [email protected]  |   26 | 2025-05-12 10:31:50 |
+----+----------+---------------+------+---------------------+
2 rows in set (0.00 sec)

3.5聚合函数

复制代码
#计算laowang表中,年龄的平均大小
SELECT COUNT(*) AS users, AVG(age) AS age FROM laowang;
#输出如下: 
+-------+---------+
| users | age     |
+-------+---------+
|     3 | 30.0000 |
+-------+---------+
1 row in set (0.00 sec)

3.6查询数据分析

字段 功能
WHERE 过滤条件
AND 连接符
LIKE 'l%' 索引匹配前缀'l'
ORDER BY 排序
DESC 降序
LIMIT 2 返回2条记录
OFFSET 1 跳过前面1条记录,从第2条记录开始
COUNT(*) 统计laowang表的总行数
AVG(age) 计算所有用户的平均年龄
AS 别名

四、修改数据(UPDATE)

4.1修改单条数据

复制代码
#修改laowang表中,id=1记录的email和age字段
UPDATE laowang
    -> SET email = '[email protected]', age =28
    -> WHERE id = 1;
#输出如下: 
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

4.2修改多条数据

复制代码
UPDATE laowang
    -> SET age = age + 1
    -> WHERE age <30;
#输出如下: 
Query OK, 3 rows affected (0.00 sec)

4.3查询表变化

复制代码
SELECT * FROM laowang;
#输出如下: 
+----+----------+-----------------+------+---------------------+
| id | username | email           | age  | created_at          |
+----+----------+-----------------+------+---------------------+
|  1 | wang     | [email protected] |   30 | 2025-05-12 10:31:50 |
|  2 | zhang    | [email protected]   |   30 | 2025-05-12 10:35:25 |
|  3 | li       | [email protected]      |   37 | 2025-05-12 10:35:25 |
+----+----------+-----------------+------+---------------------+
3 rows in set (0.00 sec)

4.4修改数据分析

字段 功能
UPDATE 修改表
SET email 修改email字段
WHERE id = 1 匹配id为1
SET age = age + 1 age字段自增1
WHERE age <30 匹配age小于30

五、删除数据(DELETE)

5.1删除单条记录

复制代码
DELETE FROM laowang WHERE id = 2;
#输出如下: 
Query OK, 1 row affected (0.00 sec)

#结果如下: 
SELECT * FROM laowang;
+----+----------+-----------------+------+---------------------+
| id | username | email           | age  | created_at          |
+----+----------+-----------------+------+---------------------+
|  1 | wang     | [email protected] |   30 | 2025-05-12 10:31:50 |
|  3 | li       | [email protected]      |   37 | 2025-05-12 10:35:25 |
+----+----------+-----------------+------+---------------------+
2 rows in set (0.00 sec)

5.2条件删除

复制代码
#删除年龄大于30的条件
DELETE FROM laowang WHERE age > 30;
#输出如下: 
Query OK, 1 row affected (0.00 sec)

#结果如下: 
SELECT * FROM laowang;
+----+----------+-----------------+------+---------------------+
| id | username | email           | age  | created_at          |
+----+----------+-----------------+------+---------------------+
|  1 | wang     | [email protected] |   30 | 2025-05-12 10:31:50 |
+----+----------+-----------------+------+---------------------+
1 row in set (0.00 sec)

5.3清空表(保留表结构)

复制代码
DELETE FROM laowang;
#输出如下: 
Query OK, 1 row affected (0.00 sec)

#结果如下: 
SELECT * FROM laowang;
Empty set (0.00 sec)

5.4删除表结构(数据与定义全部删除)

复制代码
DROP TABLE laowang;
#输出如下: 
Query OK, 0 rows affected (0.00 sec)

#结果如下: 
mysql> SELECT * FROM laowang;
ERROR 1146 (42S02): Table 'laowang.laowang' doesn't exist
相关推荐
大数据001 小时前
Docker慢慢学
mysql·docker·kafka·n8n
唐可盐1 小时前
解决docker运行zentao 报错:ln: failed to create symbolic link ‘/opt/zbox/tmp/mysq
运维·docker·容器
Amo Xiang2 小时前
Python 解释器安装全攻略(适用于 Linux / Windows / macOS)
linux·windows·python·环境安装
明金同学2 小时前
电脑wifi显示已禁用怎么点都无法启用
运维·服务器·网络
Alan3162 小时前
Qt 中,设置事件过滤器(Event Filter)的方式
java·开发语言·数据库
秋水丶秋水2 小时前
GlobalSign、DigiCert、Sectigo三种SSL安全证书有什么区别?
运维·服务器·网络
电鱼智能的电小鱼3 小时前
虚拟现实教育终端技术方案——基于EFISH-SCB-RK3588的全场景国产化替代
linux·网络·人工智能·分类·数据挖掘·vr
TDengine (老段)3 小时前
TDengine 集群容错与灾备
大数据·运维·数据库·oracle·时序数据库·tdengine·涛思数据
Aaron.Ma3 小时前
ubuntu自定义服务自动启动
linux·服务器·ubuntu
优质&青年3 小时前
Devops自动化运维---py基础篇一
运维·自动化