侧边栏壁纸
博主头像
phphi

phphi's blog

  • 累计撰写 51 篇文章
  • 累计收到 0 条评论

Day38 - SQL详解之DML

2026-4-24 / 0 评论 / 1 阅读

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 快速清空表,重置自增,不可恢复