✏️ 课堂习题
第 4 章 · 数据表记录的更新操作 · 共 8 题 · 由易到难
指定字段插入要写 INSERT INTO 表 (字段列表) VALUES (值列表),字段和值一一对应;全字段插入可省略字段名,写成 INSERT INTO 表 VALUES (...),但值的顺序、数量必须和表结构完全一致。
UPDATE student SET class='01';(没有 WHERE)会发生什么?会把 student 表中所有学生的班级都改成 01,无论原来是什么。这是极易酿成事故的写法,必须先定位再修改。
用 UPDATE。DELETE 只能删整行记录,不能只清某列;应写 UPDATE student SET Sname = NULL WHERE ...(前提是该字段允许 NULL)。
❌ 错。不带 WHERE 的 DELETE 只删除表里的所有数据行,表结构还在。要连表一起删要用 DROP TABLE。
① 条件:DELETE 可加 WHERE 删部分,TRUNCATE 只能全清空;② 自增:DELETE 不重置自增列,TRUNCATE 重置回初始值;③ 速度/回滚:TRUNCATE 更快、多数不可回滚。
DELETE FROM student WHERE Sno='001';,会发生什么?为什么?如果建表时 sc.Sno 设了外键引用 student.Sno,这条删除会报错失败——因为 001 在 sc 里还有成绩记录,直接删会破坏引用完整性。正确做法:先 DELETE FROM sc WHERE Sno='001',再删 student。
INSERT INTO student (Sno, Sname) VALUES ('a','x'), ('b','y'), ('c','z');——多个值列表用逗号分隔放在一对括号外。
字符串、日期是字面量,必须加单引号包围,否则 MySQL 会当成列名或关键字而报错。双引号在部分配置下也可,但统一用单引号最稳妥。
🖥️ 上机练习
第 4 章 · 数据表记录的更新操作 · 共 5 个实训任务 · DML 实操 · 独立完成