一、什么是CRUD?

在MySQL中,CRUD是四个基础操作的缩写,分别对应数据库中数据的四种核心操作:

  • Create(创建):向数据库插入新数据
  • Read(读取):从数据库查询已有数据
  • Update(更新):修改数据库中已有的数据
  • Delete(删除):从数据库中移除数据

这些操作是使用MySQL进行数据管理的基础,掌握它们就能轻松实现数据的增删改查。

二、准备工作:创建测试表和数据

在开始操作前,我们先创建一个简单的表和测试数据,方便后续演示。打开MySQL客户端(如Navicat、SQLyog或命令行),执行以下SQL语句:

-- 创建学生表
CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,  -- 自增主键(唯一标识)
    name VARCHAR(50) NOT NULL,         -- 学生姓名(不能为空)
    age INT,                           -- 年龄
    class VARCHAR(20)                  -- 班级
);

-- 插入测试数据
INSERT INTO students (name, age, class) VALUES 
('小明', 18, '一班'),
('小红', 19, '二班'),
('小刚', 17, '一班'),
('小丽', 20, '三班');

现在表中已有4条数据,后续所有操作都基于这个表。

三、Create(创建数据):INSERT语句

作用:向表中添加新的记录。

语法格式:

INSERT INTO 表名 (字段1, 字段2, ...) VALUES (1, 2, ...);

示例1:插入单条数据

students表中插入一名新学生“小强”,年龄16,班级“二班”:

INSERT INTO students (name, age, class) 
VALUES ('小强', 16, '二班');

注意
- 字段列表和值列表必须一一对应(顺序、类型一致)。
- 若插入所有字段,可省略字段列表(但需确保值的顺序与表定义一致):
INSERT INTO students VALUES (NULL, '小芳', 15, '四班');
id为自增主键,用NULL自动生成)。
- 字符串类型的值需用单引号包裹,数值类型直接写数字。

示例2:批量插入数据

一次插入多条记录:

INSERT INTO students (name, age, class) 
VALUES 
('小华', 17, '一班'),
('小亮', 18, '二班');

四、Read(读取数据):SELECT语句

作用:从表中查询数据,是最常用的操作。

基础语法:

SELECT 字段1, 字段2, ... FROM 表名;

示例1:查询所有数据

查询students表中所有学生的信息:

SELECT * FROM students;  -- * 表示查询所有字段

示例2:条件查询

  • 筛选年龄大于18岁的学生:
  SELECT name, age FROM students WHERE age > 18;
  • 按班级筛选(精确匹配):
  SELECT * FROM students WHERE class = '一班';
  • 多条件组合(年龄>17且班级=二班):
  SELECT * FROM students WHERE age > 17 AND class = '二班';

示例3:排序和限制结果

  • 按年龄降序排序(从大到小),取前2条:
  SELECT * FROM students ORDER BY age DESC LIMIT 2;
  • 按班级升序排序,按姓名去重:
  SELECT DISTINCT class, name FROM students ORDER BY class ASC;

示例4:模糊查询

  • 查询名字包含“小”的学生:
  SELECT * FROM students WHERE name LIKE '%小%';

%代表任意多个字符,_代表单个字符)

五、Update(更新数据):UPDATE语句

作用:修改表中已存在的记录。

语法格式:

UPDATE 表名 SET 字段1=1, 字段2=2, ... WHERE 条件;

关键:必须加WHERE条件!否则会更新表中所有记录!

示例1:更新单个字段

将“小刚”的年龄改为18岁:

UPDATE students 
SET age = 18 
WHERE name = '小刚';

示例2:更新多个字段

将“小丽”的年龄改为21岁,班级改为“四班”:

UPDATE students 
SET age = 21, class = '四班' 
WHERE name = '小丽';

六、Delete(删除数据):DELETE语句

作用:从表中移除记录。

语法格式:

DELETE FROM 表名 WHERE 条件;

关键:必须加WHERE条件!否则会删除全表数据!

示例1:删除符合条件的记录

删除年龄小于16岁的学生(若存在):

DELETE FROM students 
WHERE age < 16;

示例2:删除所有数据(谨慎!)

若需清空表,可使用WHERE条件全表匹配(需确保安全):

DELETE FROM students WHERE 1=1;  -- 等价于DELETE FROM students;

注意
- 若需快速清空表结构,可使用TRUNCATE TABLE students;(但此操作不可逆,且不支持WHERE条件)。
- DELETE是行级删除,TRUNCATE是表级重建,性能差异较小,但DELETE支持事务回滚。

七、总结与注意事项

  1. WHERE条件是核心
    UPDATEDELETESELECT(筛选)都必须加WHERE,否则会操作全表数据,造成数据丢失!

  2. 字符串与引号
    所有字符串类型的值(如姓名、班级)必须用单引号'包裹,如'小明'

  3. 自增主键
    id字段为自增主键,插入时无需手动赋值,用NULL或省略即可。

  4. 多练习
    尝试在MySQL客户端执行上述示例,观察结果,熟悉语法规则。

CRUD是MySQL的基础操作,掌握它们就能完成大部分数据库交互需求。后续可学习更复杂的查询(如JOIN连接)、事务等,为进阶打下基础!

小夜