MySQL 视频课 · 50 集 / 组
DML:插入、更新、删除
P12–P14 · 共 3 集 · 每集独立 anchor,可直接从目录跳到本页某一集
视频 p=12 · 时长 14:53
P12 12. 基础-SQL-DML-插入
原视频:在 B 站新标签打开(p=12) · 单独打开这一集 →
看视频,对照阅读:在新标签打开原视频(p=12)
往表里放数据的第一种操作。三种写法各有使用场景。
复习模式:快速跳知识点(详解在下方各节)
复习顺序:先看“一句话理解”能否复述,再扫步骤,最后做自测;答不出时回到小例与易错。
一句话理解
表建好后要往里放数据。这一集讲 INSERT 的三种写法:指定字段插、全字段插、一次插多行。
按这 4 步做
- 指定字段:
INSERT INTO 表名(字段1,字段2) VALUES(值1,值2);。字段和值要一一对应,顺序也要对。 - 全字段:省略字段列表,
INSERT INTO 表名 VALUES(...)。值的个数和顺序必须和表结构完全一致,表结构一改,这种写法就容易错位。 - 批量:
VALUES (...),(...),(...),一次插多行,比循环单条快,也更不容易出现“插了一半”。 - 值的类型要和字段匹配:字符串、日期加单引号,数字不加;没写的字段取默认值或 NULL。
小例
INSERT INTO employee (id, name, age, dept_id, salary)
VALUES (5, '小赵', 24, 2, 9000);
SELECT * FROM employee WHERE id = 5;
第一句只写五个字段并按顺序给值:'小赵' 是字符串所以要引号,9000 是数字不用。第二句只查 id=5,应返回 1 行:5、小赵、24、2、9000.00(salary 是 DECIMAL(10,2),所以补两位小数)。先插再查,能确认落库的到底是什么,而不是“以为插进去了”。这张表和数据由本页练习脚本 p12.sql 建好(独立练习库 mysqlnotes_p12)。
易错点
- 字段列表和值列表个数不一致,报 Column count doesn't match value count。
- 字符串不加引号,MySQL 可能把它当列名,报 Unknown column。
- 全字段插入依赖列顺序。后来 ALTER 加了列,旧语句就会错位,甚至类型不匹配。
- 主键重复会插入失败;批量插入时一条失败,整条语句都算失败。
30 秒速记
自测(2 题,先答再展开)
自测 1:为什么推荐写字段列表,而不是 INSERT INTO 表 VALUES(...)?
写字段列表后,值的对应关系由名字决定,不受列顺序影响;以后加列或调整顺序,旧语句仍然正确。全字段写法一旦表结构变化就会错位。
自测 2:一条 INSERT 插三行,第二行主键冲突,结果会怎样?
整条语句失败,三行都不会留下(InnoDB 下语句级回滚)。所以批量插入要么全成,要么全不成,不会只进一半。
材料与来源
展开材料出处、讲义页码与证据等级
| 材料 | 类型 / 位置 | 支持了什么 |
|---|---|---|
| B站原视频 P12《12. 基础-SQL-DML-插入》 | 平台视频页 · P12 | 标题、时长与分 P 信息取自平台公开页面;仅作外链,不在站内播放 |
| 本集采样画面 p12_t30.jpg(约 267s) | 平台视频页 · P12 / 约 267s | 已人工查看该帧:幻灯片“SQL—DML-添加数据”给出三种写法:指定字段、全部字段、批量;只证明这一画面,不代表整集讲解 |
| 本集采样画面 p12_t60.jpg(约 535s) | 平台视频页 · P12 / 约 535s | 已人工查看该帧:Workbench 中执行 INSERT INTO employee(...) VALUES(...) 并 select *,输出 1 row affected;只证明这一画面,不代表整集讲解 |
| MySQL 8.0 Reference Manual: INSERT | 官方文档 | 语法条目备查,未逐字引用 |
以同版讲义公开镜像核对:讲义 2.5.1 添加数据(p34–37)。原声字幕未取得(匿名接口字幕轨为空且需登录),讲师逐句讲解未核;本页示例、表与数字为站内原创,不是课堂原表。
讲义对照:讲义 2.5.1 添加数据 · p34–37(公开镜像;按主题对应,切点 notexact)
- 画面静帧 9 帧,采样点 0:12–14:40 / 全片 14:53(只用于确认画面主题,不作内容边界)
- 原声字幕未取得:匿名接口字幕轨为空且需登录,未使用任何账号
等级含义:平台视频页 / 官方文档 / 课件 = 原始材料;二手整理 = 参考;推断 = 未经核实。站内补充的解释与练习会在此说明。
视频 p=13 · 时长 8:15
P13 13. 基础-SQL-DML-更新和删除
原视频:在 B 站新标签打开(p=13) · 单独打开这一集 →
看视频,对照阅读:在新标签打开原视频(p=13)
改和删是最容易出事故的两条语句,重点全在 WHERE。
复习模式:快速跳知识点(详解在下方各节)
复习顺序:先看“一句话理解”能否复述,再扫步骤,最后做自测;答不出时回到小例与易错。
一句话理解
数据写错了要改,不要了要删。这一集讲 UPDATE 和 DELETE,核心只有一句:一定带 WHERE。
按这 4 步做
- UPDATE 语法:
UPDATE 表名 SET 字段1=值1, 字段2=值2 [WHERE 条件];。SET 后面可以一次改多列,用逗号分隔。 - WHERE 决定改哪些行。不带 WHERE 就是全表每一行都改,这是最典型的事故。
- DELETE 语法:
DELETE FROM 表名 [WHERE 条件];。删的是行,表结构还在;不带 WHERE 就是清空整表。 - 改之前先用同样的 WHERE 写一条 SELECT,看看会命中几行,确认无误再执行 UPDATE 或 DELETE。
小例
UPDATE employee SET salary = 10500 WHERE id = 2;
SELECT id, name, salary FROM employee WHERE id = 2;
第一句只改 id=2 这一行,把薪水设为 10500;第二句回读,应看到 2、小周、10500.00(DECIMAL(10,2) 补两位小数)。用主键做条件最稳,因为主键唯一,最多命中一行。练习时先跑 SELECT 确认命中行数,再改。这张表和数据由本页练习脚本 p13.sql 建好(独立练习库 mysqlnotes_p13)。
易错点
- 忘写 WHERE,一条 UPDATE 把全表薪水改成同一个值。执行前先用同样条件 SELECT。
- 以为 DELETE 能删表结构。删结构是 DROP TABLE,DELETE 只删行。
- 用不唯一字段做条件(比如 name),可能一次改到多行。
- 想“删掉某个字段的值”不是 DELETE:DELETE 删整行;把字段置空要用
UPDATE … SET 字段 = NULL(字段得允许 NULL)。
30 秒速记
自测(2 题,先答再展开)
自测 1:执行 UPDATE 前最该做的一件事是什么?
把同样的 WHERE 放到 SELECT 里先跑一遍,确认命中的行数和内容。行数不对就说明条件写错了,这时还来得及改。
自测 2:DELETE FROM employee; 和 DROP TABLE employee; 有什么区别?
前者删掉表里所有行,表还在,还能继续插入;后者把表结构和数据一起删掉,表不存在了。误删数据后想恢复,两者难度也完全不同。
材料与来源
展开材料出处、讲义页码与证据等级
| 材料 | 类型 / 位置 | 支持了什么 |
|---|---|---|
| B站原视频 P13《13. 基础-SQL-DML-更新和删除》 | 平台视频页 · P13 | 标题、时长与分 P 信息取自平台公开页面;仅作外链,不在站内播放 |
| 本集采样画面 p13_t20.jpg(约 98s) | 平台视频页 · P13 / 约 98s | 已人工查看该帧:SQL 编辑器中的 UPDATE 语法模板与三条示例注释:按 id 改 name、改多列、全表改入职日期;只证明这一画面,不代表整集讲解 |
| 本集采样画面 p13_t70.jpg(约 346s) | 平台视频页 · P13 / 约 346s | 已人工查看该帧:幻灯片“SQL—DML-删除数据”:DELETE FROM 表名 [WHERE 条件];只证明这一画面,不代表整集讲解 |
| MySQL 8.0 Reference Manual: UPDATE | 官方文档 | 语法条目备查,未逐字引用 |
以同版讲义公开镜像核对:讲义 2.5.2 修改数据 / 2.5.3 删除数据(p37–38)。原声字幕未取得(匿名接口字幕轨为空且需登录),讲师逐句讲解未核;本页示例、表与数字为站内原创,不是课堂原表。
讲义对照:讲义 2.5.2 修改数据 / 2.5.3 删除数据 · p37–38(公开镜像;按主题对应,切点 notexact)
- 画面静帧 9 帧,采样点 0:12–8:02 / 全片 8:15(只用于确认画面主题,不作内容边界)
- 原声字幕未取得:匿名接口字幕轨为空且需登录,未使用任何账号
等级含义:平台视频页 / 官方文档 / 课件 = 原始材料;二手整理 = 参考;推断 = 未经核实。站内补充的解释与练习会在此说明。
视频 p=14 · 时长 2:35
P14 14. 基础-SQL-DML小结
原视频:在 B 站新标签打开(p=14) · 单独打开这一集 →
看视频,对照阅读:在新标签打开原视频(p=14)
三分钟复习 DML:增、改、删三件事,加一句条件提醒。
这一集在讲什么
这一集把 DML 收成三件事:INSERT 加、UPDATE 改、DELETE 删,并再强调一次条件。
要点(3 条)
- 加:
INSERT INTO 表(字段...) VALUES(值...),(值...),一条语句可插多行;写列名,列顺序变了也不会错位。 - 改:
UPDATE 表 SET 字段=值 WHERE 条件,只改命中的行;不写 WHERE 就是全表改。 - 删:
DELETE FROM 表 WHERE 条件删的是行,不是表;删表用DROP TABLE。三者共同点:动数据、不动结构。
30 秒回忆
想再练一下(1 题,选做)
自测 1:为什么删完还要再查一次?
DELETE 可能因条件写错而影响 0 行。回查能确认真的删掉了,而不是以为删了。
材料与来源
展开材料出处、讲义页码与证据等级
| 材料 | 类型 / 位置 | 支持了什么 |
|---|---|---|
| B站原视频 P14《14. 基础-SQL-DML小结》 | 平台视频页 · P14 | 标题、时长与分 P 信息取自平台公开页面;仅作外链,不在站内播放 |
| 本集采样画面 p14_t30.jpg(约 46s) | 平台视频页 · P14 / 约 46s | 已人工查看该帧:幻灯片“总结”右栏列出 DML 三项:添加数据、修改数据、删除数据,并给出 INSERT 语法示例;只证明这一画面,不代表整集讲解 |
讲义无“小结”正文;本页参照前节 2.5.1–2.5.3 DML(p34–38)整理。原声字幕未取得(匿名接口字幕轨为空),讲师逐句讲解未核;本页不含 SQL 示例。
讲义对照:参照前节整理,无独立讲义正文;参照前节 2.5.1–2.5.3 DML(p34–38)
- 画面静帧 9 帧,采样点 0:12–2:22 / 全片 2:35(只用于确认画面主题,不作内容边界)
- 原声字幕未取得:匿名接口字幕轨为空且需登录,未使用任何账号
等级含义:平台视频页 / 官方文档 / 课件 = 原始材料;二手整理 = 参考;推断 = 未经核实。站内补充的解释与练习会在此说明。