数据操作(DML)
DML(数据操作语言)针对表或视图中的记录进行操作。这篇讲插入、更新、删除数据,以及 DELETE 与 TRUNCATE 的区别。
DML 概览
| 语句 | 作用 |
|---|---|
SELECT | 从表或视图中检索数据(见数据查询) |
INSERT | 将数据插入到表或视图中 |
UPDATE | 修改表或视图中的数据 |
DELETE | 从表或视图中删除数据 |
插入数据
INSERT INTO 表名
(
字段1, 字段2, 字段3, ... 字段n
)
VALUES
(
值1, 值2, 值3, ... 值n
)字段列表与值列表要一一对应;列数 n 最大可达 1024。
修改数据
USE 数据库
UPDATE 表名
SET 字段1 = 修改后的值,
字段2 = 修改后的值
...
WHERE 条件一次可以修改多列。务必带上
WHERE条件,否则会更新表中所有行。
删除数据
删除满足条件的记录:
DELETE FROM 表名
WHERE 条件删除表中所有记录(保留表结构):
DELETE FROM 表名TRUNCATE 删除记录
TRUNCATE TABLE 表名TRUNCATE TABLE 删除表中所有行,功能上与不带 WHERE 子句的 DELETE 相同(都删除全部行),但:
TRUNCATE比DELETE速度快。- 使用的系统和事务日志资源少。
区别要点:
DELETE 逐行删除并记录日志、可带 WHERE、会触发触发器;TRUNCATE 整体释放数据页、几乎不记录行级日志、不能带 WHERE、会重置 IDENTITY 种子。最后更新于