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', 'wang@163.com', 26);
#输出如下: 
Query OK, 1 row affected (0.01 sec)

2.2多条数据插入

INSERT INTO laowang (username, email, age)
    -> VALUES
    -> ('zhang', 'zhang@163.com' ,28),
    -> ('li', 'li@163.com' ,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’, ‘wang@163.com’, 26);(姓名为wang,邮箱为wang@163.com,年龄为26)结束符

三、查询数据(SELECT)

3.1查询所有字段

SELECT * FROM laowang;
#结果如下: 
+----+----------+---------------+------+---------------------+
| id | username | email         | age  | created_at          |
+----+----------+---------------+------+---------------------+
|  1 | wang     | wang@163.com  |   26 | 2025-05-12 10:31:50 |
|  2 | zhang    | zhang@163.com |   28 | 2025-05-12 10:35:25 |
|  3 | li       | li@163.com    |   36 | 2025-05-12 10:35:25 |
+----+----------+---------------+------+---------------------+
3 rows in set (0.00 sec)

3.2查询指定字段

SELECT username, email FROM laowang;
#输出如下: 
+----------+---------------+
| username | email         |
+----------+---------------+
| wang     | wang@163.com  |
| zhang    | zhang@163.com |
| li       | li@163.com    |
+----------+---------------+
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       | li@163.com |   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    | zhang@163.com |   28 | 2025-05-12 10:35:25 |
|  1 | wang     | wang@163.com  |   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 = 'laowang@163.com', 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     | laowang@163.com |   30 | 2025-05-12 10:31:50 |
|  2 | zhang    | zhang@163.com   |   30 | 2025-05-12 10:35:25 |
|  3 | li       | li@163.com      |   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 + 1age字段自增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     | laowang@163.com |   30 | 2025-05-12 10:31:50 |
|  3 | li       | li@163.com      |   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     | laowang@163.com |   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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值