第五回:门派管理

—— INSERT, UPDATE, DELETE
👈 上一回:长幼有序 🏠 回到大竹峰 下一卷:进阶道法 👉

师父,咱们大竹峰人丁稀少,是不是该招点新弟子了?而且大师兄的修为好像又精进了!

哼,修仙之人,贵精不贵多。不过...确实该记录一下了。这便是增(Insert)、改(Update)、删(Delete)的功夫。

小凡,这三招是修改天地造化(数据)的法门,威力巨大。稍有不慎,便是数据丢失(Data Loss)的下场,切记小心!

📥 广纳贤才:INSERT INTO

📜 招募单人 (Single Row Insert)

INSERT INTO 最基础的用法,就是向表中插入一条新记录。

INSERT INTO Disciples (Name, Sect, Power) VALUES ('林惊羽', '龙首峰', 5000);
💡 师姐提示:

列名表 (Name, Sect, Power) 其实可以省略,但前提是你必须严格按照表定义的顺序提供所有列的值。为了代码的健壮性(防止表结构变化导致出错),强烈建议永远写上列名

📜 批量招募 (Multiple Row Insert)

如果一次来了好几个新弟子,没必要写好几条 SQL,一次搞定更高效!

INSERT INTO Disciples (Name, Sect, Power) VALUES ('曾书书', '风回峰', 4500), ('齐昊', '龙首峰', 7000), ('宋大仁', '大竹峰', 4800);

📜 移花接木 (INSERT INTO SELECT)

有时候,我们需要把一个表的数据复制到另一个表。比如,建立一个“精英弟子表” (Elite_Disciples)。

INSERT INTO Elite_Disciples (Name, Power) SELECT Name, Power FROM Disciples WHERE Power > 6000;

📈 修为突破:UPDATE

📜 易筋洗髓

UPDATE 用于修改表中的现有记录。比如陆雪琪修为突破,且换了神兵。

UPDATE Disciples SET Power = 9999, Weapon = '天耶' WHERE Name = '陆雪琪';
⚠️ 走火入魔预警:
千万别忘了 WHERE 子句!
如果你写成 UPDATE Disciples SET Power = 0;
后果: 全门派弟子的修为都会瞬间清零,变成废人!这就叫“全表更新”,通常是重大事故。

👋 清理门户:DELETE

那个叫苍松的老道士是个叛徒,留着过年吗?赶紧删了!

📜 逐出师门 (DELETE)

DELETE 用于删除表中的记录。

DELETE FROM Disciples WHERE Name = '苍松道人';
⚠️ 灭门惨案预警:
同样,如果省略 WHERE,写成 DELETE FROM Disciples;
后果: 整个门派的弟子都会消失,只剩下一个空荡荡的门派(表结构还在,数据没了)。

🔥 夷为平地 (TRUNCATE)

如果你真的想清空整张表,而且不需要后悔药(无法回滚),可以使用 TRUNCATE

TRUNCATE TABLE Disciples;

👻 软删除 (Soft Delete) —— 江湖潜规则

在真实的修仙界(企业开发),我们很少真的把数据 DELETE 掉。万一以后要查账怎么办?

做法: 给表加一列 IsDeletedStatus

-- 假装删除了,其实只是打了个标记 UPDATE Disciples SET IsDeleted = 1 WHERE Name = '苍松道人'; -- 查询时,只查没被删除的 SELECT * FROM Disciples WHERE IsDeleted = 0;

这就是所谓的“软删除”,给自己留条后路。