SQL 详解:DML(数据操作语言)
DML 负责数据的增删改,核心关键字:INSERT / DELETE / UPDATE。
插入数据(INSERT)
-- 完整行(按建表顺序)
INSERT INTO tb_college VALUES (DEFAULT, '计算机学院', '介绍');
-- 指定列(推荐)
INSERT INTO tb_college (col_name, col_intro) VALUES ('计算机学院', '介绍');
-- 批量插入
INSERT INTO tb_college (col_name, col_intro) VALUES
('外国语学院', '语言学习'),
('经济管理学院', '经世济民'),
('体育学院', '发展体育');
-- 从另一表查询插入
INSERT INTO tb_college (col_name, col_intro)
SELECT name, intro FROM tb_temp;
删除数据(DELETE)
-- 按条件删除
DELETE FROM tb_college WHERE col_id = 1;
-- 删除全部(危险!)
DELETE FROM tb_college;
-- 截断表(快速清空,重置自增)
TRUNCATE TABLE tb_college;
⚠️
TRUNCATE无法恢复,比DELETE更快但更危险
更新数据(UPDATE)
-- 更新满足条件的行
UPDATE tb_student SET stu_name = '杨逍' WHERE stu_id = 1001;
-- 同时更新多列
UPDATE tb_student
SET stu_name = '杨逍', stu_birth = '1975-12-29'
WHERE stu_id = 1001;
-- 建议:UPDATE 一定要带 WHERE!
常用选项
-- 插入或更新(主键冲突时更新)
INSERT INTO tb_student (stu_id, stu_name) VALUES (1001, '张三')
ON DUPLICATE KEY UPDATE stu_name = '张三';
-- 低优先级(等待无写操作时执行)
INSERT LOW_PRIORITY INTO tb_college VALUES (...);
总结
| 语句 | 说明 |
|---|---|
INSERT |
插入行,支持批量、从查询插入 |
DELETE |
删除行,必须带 WHERE |
UPDATE |
更新列,必须带 WHERE |
TRUNCATE |
快速清空表,重置自增,不可恢复 |