news 2026/5/20 5:02:42

零基础必懂 SQL 四大语言!DDL/DML/DCL/TCL 一次讲透,写 SQL 再也不混乱

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
零基础必懂 SQL 四大语言!DDL/DML/DCL/TCL 一次讲透,写 SQL 再也不混乱

前言

很多初学 SQL 的同学,写语句时完全分不清: 到底建表、改表、增删改查、权限控制、事务回滚属于哪一类? 网上 SQL 语句乱七八糟,记不住、分不清、用的时候瞎写; 面试常问:SQL 分为哪四大类?各自作用是什么?完全答不上来; 工作中误把 DDL 随便在生产环境执行,导致表结构变更、线上故障; 不懂 TCL 事务,转账、订单业务出错时不会回滚,造成数据错乱。

其实所有 SQL 语句,都可以归为DDL、DML、DCL、TCL四大类。 今天用大白话 + 场景 + 实操代码,帮你彻底归类、分清边界、记住用法,入门、面试、上班都能用。

知识点精讲

一、SQL 整体体系概述

标准 SQL 语法按功能划分为四大核心语言

  1. DDL 数据定义语言:管库、管表结构
  2. DML 数据操作语言:管表里的数据增删改查
  3. DCL 数据控制语言:管账号、权限、授权
  4. 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 age=23 WHERE name='张三'; -- 删除单条记录 DELETE FROM student WHERE name='张三';

3. DCL 语句示例(权限管控)

sql

-- 给用户授权查询、修改权限 GRANT SELECT,INSERT,UPDATE ON sql_demo.* TO 'dev'@'localhost'; -- 回收权限 REVOKE INSERT,UPDATE ON sql_demo.* FROM 'dev'@'localhost';

4. TCL 事务语句示例(提交 / 回滚)

sql

-- 开启事务 START TRANSACTION; -- 执行多条DML操作 INSERT INTO student(name) VALUES ('李四'); UPDATE student SET age=20 WHERE name='李四'; -- 无异常就提交 COMMIT; -- 有异常就回滚,撤销所有操作 ROLLBACK;

易错 / 避坑点

  1. ❌ 分不清TRUNCATE 和 DELETE✅ 正解: DELETE 是DML,删单行数据、可回滚; TRUNCATE 是DDL,清空全表、不可回滚、生产慎用。

  2. ❌ 生产环境随意执行 DROP、ALTER ✅ 正解:DDL 不可回滚,线上变更必须先走测试、备份数据,禁止随手执行。

  3. ❌ 复杂业务不用事务,直接裸写 DML ✅ 正解:转账、下单、扣库存必须加TCL 事务,防止一半成功一半失败。

  4. ❌ 把 SELECT 当成独立类别 ✅ 正解:SELECT 属于DML,归数据操作语言范畴。

  5. ❌ 随便给开发账号授予 ALL 全部权限 ✅ 正解:DCL 权限最小化原则,只给岗位必需权限,防止误删库表。

核心小结

  1. DDL:管库表结构,CREATE/ALTER/DROP/TRUNCATE,不可回滚,生产慎用
  2. DML:管业务数据,SELECT/INSERT/UPDATE/DELETE,日常开发最常用;
  3. DCL:管账号权限,GRANT 授权、REVOKE 回收,企业权限管控必备;
  4. TCL:管事务流程,COMMIT 提交、ROLLBACK 回滚,保证数据一致性;
  5. 记住口诀:DDL 改结构、DML 改数据、DCL 管权限、TCL 管事务,面试必背、工作必用。

思考题

思考题 1

SQL 四大语言分别是什么?各自核心职责是什么?

答案: DDL 数据定义语言:负责库、表、索引等结构创建与修改; DML 数据操作语言:负责数据查询、新增、修改、删除; DCL 数据控制语言:负责用户授权与权限回收; TCL 事务控制语言:负责事务提交、回滚,保障数据一致。

思考题 2

DELETE 和 TRUNCATE 分别属于哪类 SQL?最大区别是什么?

答案: DELETE 属于DML,可以带条件删除、支持事务回滚; TRUNCATE 属于DDL,清空整张表、不支持事务回滚、速度更快、生产风险更高。

思考题 3

订单支付、资金转账业务,为什么必须用到 TCL 事务?

答案: 这类业务有多步 SQL 操作,必须满足要么全部执行成功,要么全部撤销; 通过 TCL 开启事务,正常就 COMMIT 提交,出错就 ROLLBACK 回滚,避免出现数据错乱、资金不平。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 4:57:07

CANN AsNumpy排序函数API

排序函数 【免费下载链接】asnumpy-docs 项目地址: https://gitcode.com/cann/asnumpy-docs ::: info 当前 API 文档站仅保留了一组代表性API。由于 AsNumpy 前端与文档体系仍在进行较大幅度整改,其余接口文档暂时隐藏,待前端稳定后再逐步补全。…

作者头像 李华
网站建设 2026/5/20 4:57:05

如何快速上手elec-ops-inspection:昇腾平台部署指南

如何快速上手elec-ops-inspection:昇腾平台部署指南 【免费下载链接】elec-ops-inspection elec-ops-inspection 是 CANN 社区 Electrical Engineering SIG(电力行业兴趣小组)旗下的电力装备巡检算子库, 覆盖 CV 视觉检测与具身智…

作者头像 李华
网站建设 2026/5/20 4:53:02

Matlab阶跃响应性能指标自动化计算:从原理到工程实践

1. 项目概述:从阶跃响应曲线到量化性能的灵魂拷问在控制系统、信号处理乃至电路设计的日常工作中,我们常常会面对一个看似简单却至关重要的任务:给一个系统施加一个“阶跃”输入,然后观察它的输出如何从静止状态“爬升”到新的稳态…

作者头像 李华
网站建设 2026/5/20 4:39:14

TVA视觉新范式:工业视觉的百年未有之大变局(3)

重磅预告:本专栏将独家连载系列丛书《智能体视觉技术与应用》部分精华内容,该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“…

作者头像 李华
网站建设 2026/5/20 4:39:12

CANN/asc-devkit Matmul Init接口

Init 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/cann/…

作者头像 李华