SQL 入门笔记(十六)更新和删除数据
本节将记录如何使用 UPDATE 和 DELETE 来进一步操纵表
鄙人感觉这两个语句是非常简单并且直观的
更新数据
使用 UPDATE
非常简单,你只需给出三个信息:
- 要更新的表
- 列名和它的新值
- 确定要更新哪些行的过滤条件
例如,一位顾客有了新的电子邮件地址,因此记录需要更新
1 | UPDATE Customers # 表名 |
当然,可以一次更新多个列
1 | UPDATE Customers |
记住只需要一个 SET
,并且每对数据直接要用逗号分隔
提示:在 UPDATE 语句中使用子查询
在 UPDATE
语句中可以使用子查询,这样可以用 SELECT
的检索结果更新数据
提示:FROM 关键字
某些 DBMS 支持在 UPDATE
中使用 FROM
子句,用一个表的数据更新另一个表的行
删除数据
与 UPDATE
类似, DELETE
也非常简单,但是一定不要忘了 WHERE
子句,不然就全删完了
下面的语句从 Customers 表中删除一行
1 | DELETE FROM Customers |
关于 DELETE 的几个知识点:
DELETE
不需要列名或通配符DELETE
删除整行而不是删除列DELETE
删除的是表的内容而不是表,你可以删除表中的所有行,但不能删除表本身
提示:友好的外键
在第 12 节中讲解了联结,简单联结两个表只需要这两个表中的公共字段。也可以让 DBMS 通过使用外键来严格实施关系。存在外键时,DBMS 使用它们实施引用完整性。例如要向 Products 表中插入一个新产品,DBMS 不允许通过未知的供应商 ID 插入它。因为 vend_id 列是作为外键连接到 Vendors 表的。而在删除时也是同理,例如要从 Products 表中删除一个产品,而这个产品用在 OrderItems 的已有订单中,那么 DELETE
语句将抛出错误并终止。这是总要定义外键的一个理由
提示:更快地删除
如果需要删除所有的行,可使用 TRUNCATE TABLE
,它更快,因为不记录数据的变动
评论
GiscusTwikoo