资料新增、修改与删除

进阶

INSERT INTO 表 (栏位) VALUES (值) 新增;UPDATE 表 SET 栏位 = 新值 WHERE 条件 修改;DELETE FROM 表 WHERE 条件 删除。UPDATE/DELETE 永远带 WHERE,否则影响全表;操作前先 SELECT 确认、事后验证。

适合:中三资讯及通讯科技 · 单元:资料库入门 · 建议学习路径第 7/13 课

学完呢课,你会识:
  • 三句写入语句:INSERT INTO 新增、UPDATE SET 修改、DELETE FROM 删除。
  • INSERT 稳妥写法:明确列出栏位,VALUES 的值与栏位一一对齐。
  • UPDATE 和 DELETE 永远写 WHERE;漏了就影响全表,资料库不会警告你。
文体:编程教学课有声朗读

文体小知识:编程教学课每个概念都配一段可以亲手试的代码例子,照住输入、改一改,最快学会。

资讯及通讯科技Information & Communication Technology

§课文原文 Passage

1SELECT 只会读资料;要改变资料库的内容,要用三句「写入」语句:INSERT INTO 新增一笔记录、UPDATE SET 修改现有记录、DELETE FROM 删除记录。新生入学用 INSERT,学生转班或补考出分用 UPDATE,退学用 DELETE — 资料库的全部日常维护就是这三件事。

2INSERT 的稳阵写法是指明栏位:INSERT INTO students (student_id, name, class, score) VALUES (2023011, '小美', '3A', 88);。明确列出栏位,即使日后表加了新栏位,这句照样正确。修改用 UPDATE students SET score = 92 WHERE student_id = 2023011;;删除用 DELETE FROM students WHERE student_id = 2023011;。

3UPDATE 和 DELETE 有一条救命规则:永远写 WHERE。漏了 WHERE 的 UPDATE students SET score = 90; 会把全班所有人的分数一次过改成 90;漏了 WHERE 的 DELETE FROM students; 会把整张表的记录全部清空 — 而且资料库不会问你「确定吗?」。真实事故中,多少工程师就是在这里失去整份资料。

4所以专业操作有一套安全流程:先用 SELECT 看清楚 WHERE 会影响哪些记录,确认无误才执行 UPDATE 或 DELETE,完成后再 SELECT 一次验证结果;重要资料库要先备份。资料完整性也由资料库守护:主键重复的新增会被拒绝、分数栏输入文字会出错 — 这些规则令资料库比试算表可靠得多。

1重点摘要 Summary

INSERT INTO 表 (栏位) VALUES (值) 新增;UPDATE 表 SET 栏位 = 新值 WHERE 条件 修改;DELETE FROM 表 WHERE 条件 删除。UPDATE/DELETE 永远带 WHERE,否则影响全表;操作前先 SELECT 确认、事后验证。

2生字卡 Vocabulary

I
INSERT INTO新增语句

向资料表加入一笔新记录的 SQL 语句,配 VALUES 指定各栏位的值。

V
VALUES值清单

INSERT 中按栏位次序给出实际值的部分,例如 VALUES (2023011, '小美', '3A', 88)。

U
UPDATE ... SET修改语句

修改现有记录栏位值的 SQL 语句,SET 指定新值,WHERE 限定范围。

D
DELETE FROM删除语句

从资料表删除记录的 SQL 语句,WHERE 决定删哪些;漏了 WHERE 会删光全表。

S
Scope of WHEREWHERE 影响范围

WHERE 决定 UPDATE/DELETE 会影响哪些记录;不写就是全部记录,极度危险。

D
Data integrity资料完整性

资料保持正确一致的性质,由主键、栏位类型和范围规则守护。

P
Primary key constraint主键限制

资料库拒绝主键重复或空缺的新增,保证每笔记录可唯一辨识。

B
Backup备份

事先复制一份资料副本,出错或事故后可以还原。

V
Verify验证

写入操作后再用 SELECT 检查结果是否正确,是安全流程的最后一步。

3逐步讲解 Steps

  1. 新增一笔记录例如:INSERT INTO students (student_id, name, class, score) VALUES (2023011, '小美', '3A', 88);。栏位和值一一对应:学号 2023011、姓名小美、班别 3A、分数 88 — 四个栏位四个值,次序要对齐。文字值用单引号包住,数字不用;建议一律写明栏位清单,次序读起来一目了然。
  2. 新增后查证例如:SELECT * FROM students WHERE student_id = 2023011;。返回刚加入的一行 (2023011, 小美, 3A, 88) — 新增后立即 SELECT 是好习惯。SELECT 后也可指定栏位,例如 SELECT name, score FROM ...,只返回需要的资料;星号代表所有栏位,查证单一行时很方便。
  3. 修改一笔记录例如:小美补考得 92 分:UPDATE students SET score = 92 WHERE student_id = 2023011;。WHERE 用主键锁定唯一一行,只有小美的分数被改,其他人不受影响。漏写 WHERE 的 UPDATE 会改动全表,所以执行前先默数一次条件;主键是最可靠的条件,因为它绝不重复。
  4. 修改多笔记录例如:3B 班全体调分 +5:UPDATE students SET score = score + 5 WHERE class = '3B';。SET 可以用运算式(score = score + 5);WHERE 决定哪些行受影响 — 3B 每人加 5,3A、3C 不变。运算式逐行计算,各人以自己的分数加五;想改成固定分数,就写 SET score = 90。
  5. 删除一笔记录例如:DELETE FROM students WHERE student_id = 2023011;。只删走学号 2023011 那一行;删完再用 SELECT 查,应该返回零行。DELETE 删除整行,不可还原,执行前务必先 SELECT 确认目标;正式资料库常用软删除代替:加一个 deleted 栏位做记号。
  6. 无 WHERE 的灾难例如:UPDATE students SET score = 90;(漏 WHERE)— 全表所有人的分数变 90;DELETE FROM students;(漏 WHERE)— 整张表的记录全部消失。资料库不会弹窗问你确定吗。防范方法是养成习惯:UPDATE 与 DELETE 一律先写 WHERE,再补前半句;许多公司更要求先在测试资料库演练一次。
  7. 安全操作四步例如:①SELECT * FROM students WHERE class = '3B'; 先看会影响谁;②确认名单无误;③执行 UPDATE ... WHERE class = '3B';;④SELECT 再查一次验证。重要系统在第二步前先备份。四步顺序不可颠倒:先看、再确认、后执行、终验证;把这个流程养成反射动作,操作资料库就安全得多。

4图解 Diagrams

资料库四种操作:CRUD新增 CreateINSERT加入新记录读取 ReadSELECT查询资料更新 UpdateUPDATE修改现有记录删除 DeleteDELETE移除记录实例:网购=新增订单(C)· 着订单状态(R)· 改送货地址(U)· 取消(D)警告:UPDATE/DELETE 记得加 WHERE——冇条件就成个表改晒/铲晒!
图 1:CRUD 四种操作

5例题示范 Example

例题:新生 Peter(学号 2023012)入读 3C 班,首次测验 75 分;补考后改为 81 分。写出所需的 SQL 语句并验证。

  1. 新增:INSERT INTO students (student_id, name, class, score) VALUES (2023012, 'Peter', '3C', 75);
  2. 修改:UPDATE students SET score = 81 WHERE student_id = 2023012; — 用主键锁定,只改 Peter 的分数。
  3. 验证:SELECT * FROM students WHERE class = '3C'; — 应返回 Peter 一行,分数已显示 81。
  4. 完整性检查:若再执行一次步骤一的 INSERT,资料库会拒绝,因为主键 2023012 已存在 — 这正是主键限制保护资料。
  5. 答案:三句 SQL:INSERT 新增 (2023012, Peter, 3C, 75);UPDATE 把 score 改为 81;SELECT 验证 3C 班名单。重复新增同一主键会被拒绝。

6常见错误 Mistakes

✗ 「UPDATE students SET score = 90; 只会改一笔。」
✓ 漏了 WHERE 的 UPDATE 会改动全表每一行 — 分数全部变 90;必须写 WHERE student_id = ... 锁定范围。
✗ 「DELETE FROM students; 可以顺手清理旧资料。」
✓ 这句会删光整张表的记录,而且无法后悔;要删个别记录必须写 WHERE,重要操作前先备份。
✗ 「同一个学生 INSERT 两次没问题,资料会自动合并。」
✓ 主键重复的新增会被资料库直接拒绝 — 这是主键限制在保护资料完整性,不是故障。
✗ 「分数栏写 '八十五' 也可以存入。」
✓ 栏位有类型:score 是数字栏,存文字会出错被拒;文字要存就应该设计成文字栏位。
✗ 「执行完 UPDATE 就算完成,不用再查。」
✓ 专业流程要事后验证:再用 SELECT 检查改动是否如预期,确认无误才收工。

75 题快测 Quick check

Q1新生入学要加一笔记录,应用哪句 SQL?A. SELECT B. INSERT INTO C. UPDATE

Q2UPDATE students SET score = 90; 这句漏了什么?后果是什么?

Q3小美转读 3C 班,写出正确的 UPDATE 语句(假设她的学号是 2023011)。

Q4为什么重复 INSERT 同一个主键会被资料库拒绝?

Q5写出修改/删除资料前后的安全流程(至少三步)。

8重点回顾 Recap

  • 三句写入语句:INSERT INTO 新增、UPDATE SET 修改、DELETE FROM 删除。
  • INSERT 稳妥写法:明确列出栏位,VALUES 的值与栏位一一对齐。
  • UPDATE 和 DELETE 永远写 WHERE;漏了就影响全表,资料库不会警告你。
  • 资料完整性由规则守护:主键不重复、栏位类型和范围要正确。
  • 安全四步:SELECT 确认 → 备份 → 执行 → SELECT 验证。

同级其他科

同一科其他级别