MySQL 视频课 · 50 集 / 组

DML:插入、更新、删除

P12–P14 · 共 3 集 · 每集独立 anchor,可直接从目录跳到本页某一集

视频 p=12 · 时长 14:53

P12 12. 基础-SQL-DML-插入

讲义 2.5.1 添加数据 p34–37

按主题对应,非逐句切分

来源与核对说明

以同版讲义的公开镜像核对章节与页码(镜像非官方出品);非逐字稿,示例为原创补充。

本页是学习笔记,不等同于视频逐字稿。原声字幕未取得(匿名接口字幕轨为空且需登录,未使用任何账号),也没有逐句讲解记录;讲义只按节与页码对应,切点未逐句确证。

讲义索引:p34–37 · 2.5.1 添加数据 · 切点 notexact

讲义是第三方公开镜像(95 页 PDF),不是官方原件;这里只用它核对章节顺序与页码,不转载正文。

完整来源说明与变更记录 →

看视频,对照阅读:在新标签打开原视频(p=12)

往表里放数据的第一种操作。三种写法各有使用场景。

复习模式:快速跳知识点(详解在下方各节)

复习顺序:先看“一句话理解”能否复述,再扫步骤,最后做自测;答不出时回到小例与易错。

一句话理解

表建好后要往里放数据。这一集讲 INSERT 的三种写法:指定字段插、全字段插、一次插多行。

按这 4 步做

  1. 指定字段:INSERT INTO 表名(字段1,字段2) VALUES(值1,值2);。字段和值要一一对应,顺序也要对。
  2. 全字段:省略字段列表,INSERT INTO 表名 VALUES(...)。值的个数和顺序必须和表结构完全一致,表结构一改,这种写法就容易错位。
  3. 批量:VALUES (...),(...),(...),一次插多行,比循环单条快,也更不容易出现“插了一半”。
  4. 值的类型要和字段匹配:字符串、日期加单引号,数字不加;没写的字段取默认值或 NULL。

小例

先准备本集练习数据:p12.sql · 练习库说明

SQL 示例
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-更新和删除

讲义 2.5.2 修改数据 / 2.5.3 删除数据 p37–38

按主题对应,非逐句切分

来源与核对说明

以同版讲义的公开镜像核对章节与页码(镜像非官方出品);非逐字稿,示例为原创补充。

本页是学习笔记,不等同于视频逐字稿。原声字幕未取得(匿名接口字幕轨为空且需登录,未使用任何账号),也没有逐句讲解记录;讲义只按节与页码对应,切点未逐句确证。

讲义索引:p37–38 · 2.5.2 修改数据 / 2.5.3 删除数据 · 切点 notexact

讲义是第三方公开镜像(95 页 PDF),不是官方原件;这里只用它核对章节顺序与页码,不转载正文。

完整来源说明与变更记录 →

看视频,对照阅读:在新标签打开原视频(p=13)

改和删是最容易出事故的两条语句,重点全在 WHERE。

复习模式:快速跳知识点(详解在下方各节)

复习顺序:先看“一句话理解”能否复述,再扫步骤,最后做自测;答不出时回到小例与易错。

一句话理解

数据写错了要改,不要了要删。这一集讲 UPDATE 和 DELETE,核心只有一句:一定带 WHERE。

按这 4 步做

  1. UPDATE 语法:UPDATE 表名 SET 字段1=值1, 字段2=值2 [WHERE 条件];。SET 后面可以一次改多列,用逗号分隔。
  2. WHERE 决定改哪些行。不带 WHERE 就是全表每一行都改,这是最典型的事故。
  3. DELETE 语法:DELETE FROM 表名 [WHERE 条件];。删的是行,表结构还在;不带 WHERE 就是清空整表。
  4. 改之前先用同样的 WHERE 写一条 SELECT,看看会命中几行,确认无误再执行 UPDATE 或 DELETE。

小例

先准备本集练习数据:p13.sql · 练习库说明

SQL 示例
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 秒速记

UPDATE ... SET ... WHERE;DELETE FROM ... WHERE;不带 WHERE 等于全表;先 SELECT 再改。

自测(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小结

讲义:参照前节整理,无独立讲义正文

覆盖范围:2.5.1–2.5.3 DML(p34–38)(不设本集切点)

来源与核对说明

以同版讲义的公开镜像核对章节与页码(镜像非官方出品);非逐字稿,示例为原创补充。

本页是学习笔记,不等同于视频逐字稿。原声字幕未取得(匿名接口字幕轨为空且需登录,未使用任何账号),也没有逐句讲解记录;讲义只按节与页码对应,切点未逐句确证。

讲义索引:无本集正文 · 切点 none

讲义是第三方公开镜像(95 页 PDF),不是官方原件;这里只用它核对章节顺序与页码,不转载正文。

完整来源说明与变更记录 →

看视频,对照阅读:在新标签打开原视频(p=14)

三分钟复习 DML:增、改、删三件事,加一句条件提醒。

这一集在讲什么

这一集把 DML 收成三件事:INSERT 加、UPDATE 改、DELETE 删,并再强调一次条件。

要点(3 条)

  1. 加:INSERT INTO 表(字段...) VALUES(值...),(值...),一条语句可插多行;写列名,列顺序变了也不会错位。
  2. 改:UPDATE 表 SET 字段=值 WHERE 条件,只改命中的行;不写 WHERE 就是全表改。
  3. 删:DELETE FROM 表 WHERE 条件 删的是行,不是表;删表用 DROP TABLE。三者共同点:动数据、不动结构。

30 秒回忆

INSERT 加、UPDATE 改、DELETE 删;都动行不动壳;每条先想清楚 WHERE。

想再练一下(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(只用于确认画面主题,不作内容边界)
  • 原声字幕未取得:匿名接口字幕轨为空且需登录,未使用任何账号

等级含义:平台视频页 / 官方文档 / 课件 = 原始材料;二手整理 = 参考;推断 = 未经核实。站内补充的解释与练习会在此说明。