💡 课堂例题

第 4 章 · 数据表记录的更新操作 · 共 5 题 · 全部示例基于「教学实例」库的 student / sc / course 表 · 代码可一键复制

1
插入一名新生(指定字段)
只填必要字段,其余列自动为 NULL。
sql
INSERT INTO student (Sno, Sname, Ssex, class)
VALUES ('021', '小李', '男', '01');
未指定的 Sbirth、IDNum 等字段会存为 NULL(前提是建表时允许为空)。字段名和值必须一一对应。
2
批量插入多名学生
一条语句插多行,比多次单插高效。
sql
INSERT INTO student (Sno, Sname, Ssex, class)
VALUES
  ('023', '小赵', '男', '03'),
  ('024', '小钱', '女', '03');
每对括号是一行记录,括号之间用逗号分隔。注意 Sno 不能和已有学号重复,否则整句失败。
3
修改成绩(带 WHERE)
把某学生某门课成绩改掉,体会条件定位。
sql
UPDATE sc SET score = 95.0
WHERE Sno = '001' AND Cno = '02';
sc 是复合主键,想定位"某学生的某门课"必须 Sno 和 Cno 同时写,否则会改到多行。
4
删除指定记录(带 WHERE)
删除某个性别的记录,验证条件生效。
sql
DELETE FROM student WHERE Ssex = '女' AND class = '03';
WHERE 用 AND 组合条件,只删"03班女生"。若这些学生已有成绩,会因外键先报错——记得先清 sc。
5
DELETE 与 TRUNCATE 对比演练
直观感受两者差异。
sql
-- 只删 01 班
DELETE FROM student WHERE class = '01';

-- 清空整张测试表并重置自增
TRUNCATE TABLE sc;
DELETE 可精确删部分;TRUNCATE 一把清空且把自增列归零,常用于重置测试数据。