前言很多初学 SQL 的同学写语句时完全分不清 到底建表、改表、增删改查、权限控制、事务回滚属于哪一类 网上 SQL 语句乱七八糟记不住、分不清、用的时候瞎写 面试常问SQL 分为哪四大类各自作用是什么完全答不上来 工作中误把 DDL 随便在生产环境执行导致表结构变更、线上故障 不懂 TCL 事务转账、订单业务出错时不会回滚造成数据错乱。其实所有 SQL 语句都可以归为DDL、DML、DCL、TCL四大类。 今天用大白话 场景 实操代码帮你彻底归类、分清边界、记住用法入门、面试、上班都能用。知识点精讲一、SQL 整体体系概述标准 SQL 语法按功能划分为四大核心语言DDL 数据定义语言管库、管表结构DML 数据操作语言管表里的数据增删改查DCL 数据控制语言管账号、权限、授权TCL 事务控制语言管事务提交、回滚、数据一致性记住一句话DDL 改结构DML 改数据DCL 管权限TCL 管事务。二、DDL 数据定义语言核心作用定义和修改数据库、数据表、索引、视图等结构不操作表里面的数据。 常用关键字CREATE、ALTER、DROP、TRUNCATE适用场景 建库、建表、改字段、删表、删除库、创建索引、删除视图。 重要特点DDL 执行后不可回滚生产环境慎用一旦删表无法恢复。三、DML 数据操作语言核心作用操作表里面的业务数据增删改查日常业务全靠它。 常用关键字SELECT、INSERT、UPDATE、DELETE适用场景 查询数据、新增记录、修改内容、删除单条 / 多条业务数据。 特点 可以配合事务 TCL实现提交和回滚误操作可以撤销。四、DCL 数据控制语言核心作用管理数据库用户、账号权限给谁授权、收回权限。 常用关键字GRANT、REVOKE适用场景 创建开发账号、给别人分配查询 / 修改权限、回收高危权限、生产环境权限管控。五、TCL 事务控制语言核心作用控制事务提交、回滚、保存点保证多步操作要么全变、要么全不变。 常用关键字COMMIT、ROLLBACK、START TRANSACTION适用场景 转账、下单、扣库存等多条 SQL 必须同时成功或同时失败的业务场景。通俗类比 实例表格通俗类比把数据库比作一栋写字楼DDL负责盖楼、拆房间、改户型建库、建表、改结构DML负责搬家具、换物品增删改查表里数据DCL负责发门禁卡、收门禁权限账号授权、回收权限TCL负责整层验收、出错全部复原事务提交、回滚四大 SQL 语言汇总表表格分类全称核心关键字核心作用能否事务回滚DDL数据定义语言CREATE/ALTER/DROP/TRUNCATE建库建表、改结构、删对象不能回滚DML数据操作语言SELECT/INSERT/UPDATE/DELETE增删改查业务数据可以回滚DCL数据控制语言GRANT/REVOKE授权、回收权限一般不事务控制TCL事务控制语言COMMIT/ROLLBACK事务提交、回滚专门管控事务SQL 代码演示1. DDL 语句示例改结构sql-- 创建数据库 CREATE DATABASE sql_demo; -- 创建数据表 CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) ); -- 修改表结构新增字段 ALTER TABLE student ADD age INT; -- 清空表所有数据、释放空间 TRUNCATE TABLE student; -- 删除数据表 DROP TABLE student;2. DML 语句示例改数据sql-- 查询 SELECT * FROM student; -- 插入数据 INSERT INTO student(name,age) VALUES (张三,22); -- 修改数据 UPDATE student SET age23 WHERE name张三; -- 删除单条记录 DELETE FROM student WHERE name张三;3. DCL 语句示例权限管控sql-- 给用户授权查询、修改权限 GRANT SELECT,INSERT,UPDATE ON sql_demo.* TO devlocalhost; -- 回收权限 REVOKE INSERT,UPDATE ON sql_demo.* FROM devlocalhost;4. TCL 事务语句示例提交 / 回滚sql-- 开启事务 START TRANSACTION; -- 执行多条DML操作 INSERT INTO student(name) VALUES (李四); UPDATE student SET age20 WHERE name李四; -- 无异常就提交 COMMIT; -- 有异常就回滚撤销所有操作 ROLLBACK;易错 / 避坑点❌ 分不清TRUNCATE 和 DELETE✅ 正解 DELETE 是DML删单行数据、可回滚 TRUNCATE 是DDL清空全表、不可回滚、生产慎用。❌ 生产环境随意执行 DROP、ALTER ✅ 正解DDL 不可回滚线上变更必须先走测试、备份数据禁止随手执行。❌ 复杂业务不用事务直接裸写 DML ✅ 正解转账、下单、扣库存必须加TCL 事务防止一半成功一半失败。❌ 把 SELECT 当成独立类别 ✅ 正解SELECT 属于DML归数据操作语言范畴。❌ 随便给开发账号授予 ALL 全部权限 ✅ 正解DCL 权限最小化原则只给岗位必需权限防止误删库表。核心小结DDL管库表结构CREATE/ALTER/DROP/TRUNCATE不可回滚生产慎用DML管业务数据SELECT/INSERT/UPDATE/DELETE日常开发最常用DCL管账号权限GRANT 授权、REVOKE 回收企业权限管控必备TCL管事务流程COMMIT 提交、ROLLBACK 回滚保证数据一致性记住口诀DDL 改结构、DML 改数据、DCL 管权限、TCL 管事务面试必背、工作必用。思考题思考题 1SQL 四大语言分别是什么各自核心职责是什么答案 DDL 数据定义语言负责库、表、索引等结构创建与修改 DML 数据操作语言负责数据查询、新增、修改、删除 DCL 数据控制语言负责用户授权与权限回收 TCL 事务控制语言负责事务提交、回滚保障数据一致。思考题 2DELETE 和 TRUNCATE 分别属于哪类 SQL最大区别是什么答案 DELETE 属于DML可以带条件删除、支持事务回滚 TRUNCATE 属于DDL清空整张表、不支持事务回滚、速度更快、生产风险更高。思考题 3订单支付、资金转账业务为什么必须用到 TCL 事务答案 这类业务有多步 SQL 操作必须满足要么全部执行成功要么全部撤销 通过 TCL 开启事务正常就 COMMIT 提交出错就 ROLLBACK 回滚避免出现数据错乱、资金不平。
零基础必懂 SQL 四大语言!DDL/DML/DCL/TCL 一次讲透,写 SQL 再也不混乱
发布时间:2026/5/20 5:02:43
前言很多初学 SQL 的同学写语句时完全分不清 到底建表、改表、增删改查、权限控制、事务回滚属于哪一类 网上 SQL 语句乱七八糟记不住、分不清、用的时候瞎写 面试常问SQL 分为哪四大类各自作用是什么完全答不上来 工作中误把 DDL 随便在生产环境执行导致表结构变更、线上故障 不懂 TCL 事务转账、订单业务出错时不会回滚造成数据错乱。其实所有 SQL 语句都可以归为DDL、DML、DCL、TCL四大类。 今天用大白话 场景 实操代码帮你彻底归类、分清边界、记住用法入门、面试、上班都能用。知识点精讲一、SQL 整体体系概述标准 SQL 语法按功能划分为四大核心语言DDL 数据定义语言管库、管表结构DML 数据操作语言管表里的数据增删改查DCL 数据控制语言管账号、权限、授权TCL 事务控制语言管事务提交、回滚、数据一致性记住一句话DDL 改结构DML 改数据DCL 管权限TCL 管事务。二、DDL 数据定义语言核心作用定义和修改数据库、数据表、索引、视图等结构不操作表里面的数据。 常用关键字CREATE、ALTER、DROP、TRUNCATE适用场景 建库、建表、改字段、删表、删除库、创建索引、删除视图。 重要特点DDL 执行后不可回滚生产环境慎用一旦删表无法恢复。三、DML 数据操作语言核心作用操作表里面的业务数据增删改查日常业务全靠它。 常用关键字SELECT、INSERT、UPDATE、DELETE适用场景 查询数据、新增记录、修改内容、删除单条 / 多条业务数据。 特点 可以配合事务 TCL实现提交和回滚误操作可以撤销。四、DCL 数据控制语言核心作用管理数据库用户、账号权限给谁授权、收回权限。 常用关键字GRANT、REVOKE适用场景 创建开发账号、给别人分配查询 / 修改权限、回收高危权限、生产环境权限管控。五、TCL 事务控制语言核心作用控制事务提交、回滚、保存点保证多步操作要么全变、要么全不变。 常用关键字COMMIT、ROLLBACK、START TRANSACTION适用场景 转账、下单、扣库存等多条 SQL 必须同时成功或同时失败的业务场景。通俗类比 实例表格通俗类比把数据库比作一栋写字楼DDL负责盖楼、拆房间、改户型建库、建表、改结构DML负责搬家具、换物品增删改查表里数据DCL负责发门禁卡、收门禁权限账号授权、回收权限TCL负责整层验收、出错全部复原事务提交、回滚四大 SQL 语言汇总表表格分类全称核心关键字核心作用能否事务回滚DDL数据定义语言CREATE/ALTER/DROP/TRUNCATE建库建表、改结构、删对象不能回滚DML数据操作语言SELECT/INSERT/UPDATE/DELETE增删改查业务数据可以回滚DCL数据控制语言GRANT/REVOKE授权、回收权限一般不事务控制TCL事务控制语言COMMIT/ROLLBACK事务提交、回滚专门管控事务SQL 代码演示1. DDL 语句示例改结构sql-- 创建数据库 CREATE DATABASE sql_demo; -- 创建数据表 CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) ); -- 修改表结构新增字段 ALTER TABLE student ADD age INT; -- 清空表所有数据、释放空间 TRUNCATE TABLE student; -- 删除数据表 DROP TABLE student;2. DML 语句示例改数据sql-- 查询 SELECT * FROM student; -- 插入数据 INSERT INTO student(name,age) VALUES (张三,22); -- 修改数据 UPDATE student SET age23 WHERE name张三; -- 删除单条记录 DELETE FROM student WHERE name张三;3. DCL 语句示例权限管控sql-- 给用户授权查询、修改权限 GRANT SELECT,INSERT,UPDATE ON sql_demo.* TO devlocalhost; -- 回收权限 REVOKE INSERT,UPDATE ON sql_demo.* FROM devlocalhost;4. TCL 事务语句示例提交 / 回滚sql-- 开启事务 START TRANSACTION; -- 执行多条DML操作 INSERT INTO student(name) VALUES (李四); UPDATE student SET age20 WHERE name李四; -- 无异常就提交 COMMIT; -- 有异常就回滚撤销所有操作 ROLLBACK;易错 / 避坑点❌ 分不清TRUNCATE 和 DELETE✅ 正解 DELETE 是DML删单行数据、可回滚 TRUNCATE 是DDL清空全表、不可回滚、生产慎用。❌ 生产环境随意执行 DROP、ALTER ✅ 正解DDL 不可回滚线上变更必须先走测试、备份数据禁止随手执行。❌ 复杂业务不用事务直接裸写 DML ✅ 正解转账、下单、扣库存必须加TCL 事务防止一半成功一半失败。❌ 把 SELECT 当成独立类别 ✅ 正解SELECT 属于DML归数据操作语言范畴。❌ 随便给开发账号授予 ALL 全部权限 ✅ 正解DCL 权限最小化原则只给岗位必需权限防止误删库表。核心小结DDL管库表结构CREATE/ALTER/DROP/TRUNCATE不可回滚生产慎用DML管业务数据SELECT/INSERT/UPDATE/DELETE日常开发最常用DCL管账号权限GRANT 授权、REVOKE 回收企业权限管控必备TCL管事务流程COMMIT 提交、ROLLBACK 回滚保证数据一致性记住口诀DDL 改结构、DML 改数据、DCL 管权限、TCL 管事务面试必背、工作必用。思考题思考题 1SQL 四大语言分别是什么各自核心职责是什么答案 DDL 数据定义语言负责库、表、索引等结构创建与修改 DML 数据操作语言负责数据查询、新增、修改、删除 DCL 数据控制语言负责用户授权与权限回收 TCL 事务控制语言负责事务提交、回滚保障数据一致。思考题 2DELETE 和 TRUNCATE 分别属于哪类 SQL最大区别是什么答案 DELETE 属于DML可以带条件删除、支持事务回滚 TRUNCATE 属于DDL清空整张表、不支持事务回滚、速度更快、生产风险更高。思考题 3订单支付、资金转账业务为什么必须用到 TCL 事务答案 这类业务有多步 SQL 操作必须满足要么全部执行成功要么全部撤销 通过 TCL 开启事务正常就 COMMIT 提交出错就 ROLLBACK 回滚避免出现数据错乱、资金不平。