sql 语言的数据库语句分类 四大类详解

SQL 也就是结构化查询语言,数据库语句按照功能一共划分为五大类,分别是 DQL 数据查询语言 DML 数据操纵语言 DDL 数据定义语言 DCL 数据控制语言 TCL 事务控制语言,日常开发最常接触的是 DQL 和 DML,也就是增删改查相关语句,DDL 用来创建修改删除表 索引 视图这类数据库对象,DCL 负责账号权限分配回收,TCL 专门用来控制事务提交和回滚,很多新手容易混淆 DML 和 DDL,DML 是修改表里的数据,DDL 是修改表结构本身,二者触发的日志 锁机制 隐式提交行为都不一样,理解这套分类是写 SQL 排查报错 优化数据库操作的基础,不管是 SQL Server MySQL Oracle,这套分类标准是通用的,只是每一类里面具体关键字写法会有少量差异。

一 五大类语句总览表格

分类英文缩写中文名称核心功能代表关键字
DQL数据查询语言读取查询表内数据SELECT
DML数据操纵语言对表里面的数据做增删改INSERT UPDATE DELETE
DDL数据定义语言创建修改删除数据库对象CREATE ALTER DROP TRUNCATE
DCL数据控制语言管理账号 权限 角色GRANT REVOKE
TCL事务控制语言控制事务提交回滚COMMIT ROLLBACK SAVEPOINT

二 DQL 数据查询语言深度讲解

DQL 全称 Data Query Language,唯一核心关键字就是 SELECT,作用是从数据表读取数据,属于只读操作,不会修改原始数据。

扩展能力清单

第一 基础单表查询,指定字段,WHERE 条件过滤

第二 多表 JOIN 关联查询,inner join left join

第三 GROUP BY 分组聚合,配合 count sum avg max min

第四 ORDER BY 排序,LIMIT 或者 TOP 分页

第五 子查询 联合查询 UNION

特点说明 DQL 是使用频率最高的 SQL 语句,执行的时候数据库会生成查询执行计划,是 SQL 优化的重点对象。

三 DML 数据操纵语言深度讲解

DML 全称 Data Manipulation Language,作用是操作数据表内部的数据行,也就是大家常说的数据增删改。

包含语句清单

第一 INSERT 插入新数据行

第二 UPDATE 更新已有数据

第三 DELETE 删除数据行

特点说明 DML 属于写操作,会写入事务日志,支持事务回滚,执行的时候会加行锁或者表锁,大批量 DML 会影响数据库并发性能,注意 TRUNCATE 不属于 DML,它归类在 DDL,这点是高频易错点。

四 DDL 数据定义语言深度讲解

DDL 全称 Data Definition Language,作用是定义数据库对象,比如数据库 数据表 视图 索引 存储过程 触发器,它修改的是对象结构,不是表里的数据。

包含语句清单

第一 CREATE 创建对象,建库建表建视图

第二 ALTER 修改对象结构,增加字段 修改字段类型

第三 DROP 删除整个对象,删除表 索引 视图

第四 TRUNCATE 清空整张表数据

特点说明 大部分数据库执行 DDL 语句之后会自动隐式提交事务,DDL 操作不能像 DML 那样直接 ROLLBACK 回滚,TRUNCATE 虽然是清空数据,但是本质是重建表,归类为 DDL,性能远高于 DELETE。

五 DCL 数据控制语言深度讲解

DCL 全称 Data Control Language,作用是数据库安全管控,管理登录账号 角色,分配或者回收操作权限。

包含语句清单

第一 GRANT 授予权限,比如授予查询 修改表的权限

第二 REVOKE 回收已经分配的权限

特点说明 DCL 一般是数据库管理员 DBA 使用,普通业务开发很少写 DCL 语句,权限控制可以精细到单表 单字段,也可以按角色批量授权。

六 TCL 事务控制语言深度讲解

TCL 全称 Transaction Control Language,专门用来管理事务,保证多条 DML 操作要么全部成功,要么全部失败。

包含语句清单

第一 COMMIT 提交事务,把事务内所有 DML 修改永久保存

第二 ROLLBACK 回滚事务,撤销事务内还没有提交的 DML 操作

第三 SAVEPOINT 设置保存点,可以回滚到指定保存点,不用整个事务全部回滚

特点说明 TCL 是配合 DML 使用,单独 TCL 没有意义,DDL 会触发隐式提交,会把之前未提交的事务自动提交,这个是非常容易踩坑的点。

七 区分实操步骤

第一步 先判断操作对象,如果是读取数据,属于 DQL

第二步 如果是修改表里面的数据行,属于 DML

第三步 如果是修改表结构 建表删表,属于 DDL

第四步 如果是账号授权回收权限,属于 DCL

第五步 如果是事务提交回滚,属于 TCL

第六步 遇到混淆项重点核对,比如 TRUNCATE,不要误归类成 DML

八 常见误区

误区 1 把 TRUNCATE 当成 DML,实际 TRUNCATE 属于 DDL,不能回滚

误区 2 认为 SELECT 属于 DML,SELECT 是独立 DQL 分类

误区 3 DDL 可以和 DML 一样随时 ROLLBACK,大部分数据库 DDL 执行就自动隐式提交,无法回滚

误区 4 五大类里面 DML 就是全部增删改查,查询 SELECT 单独属于 DQL,不属于 DML

误区 5 DCL 只有授权语句,忘记还有 REVOKE 回收权限语句

【常见问题】

问题 1 sql 语言的数据库语句分类里面 SELECT 属于哪一类

回答 1 sql 语言的数据库语句分类里面,SELECT 属于 DQL 数据查询语言,是只读查询语句,不属于 DML,sql 语言的数据库语句分类里 DML 只包含 INSERT UPDATE DELETE 这三类数据增删改语句。

问题 2 sql 语言的数据库语句分类里面 TRUNCATE 为什么不属于 DML

回答 2 sql 语言的数据库语句分类里面,TRUNCATE 归类为 DDL 数据定义语言,它是重建表对象,执行之后会隐式提交事务,不能回滚,和 DML 里面 DELETE 逐行删除支持回滚的机制不一样,所以在 sql 语言的数据库语句分类里单独划分到 DDL。

问题 3 sql 语言的数据库语句分类里面 TCL 是做什么的

回答 3 sql 语言的数据库语句分类里面,TCL 也就是事务控制语言,包含 COMMIT ROLLBACK SAVEPOINT,用来管理 DML 组成的事务,保证多条数据修改操作原子性,是 sql 语言的数据库语句分类里专门管控事务的类别。

问题 4 sql 语言的数据库语句分类里面 DCL 主要是谁使用

回答 4 sql 语言的数据库语句分类里面,DCL 数据控制语言主要是 DBA 数据库管理员使用,核心是 GRANT 授权和 REVOKE 回收权限,负责数据库账号安全管控,普通业务开发很少编写这类 sql 语言的数据库语句分类中的 DCL 语句。

【免责申明】

本文 sql 语言的数据库语句分类仅作为数据库学习参考,不同数据库产品对语句分类的细节认知以及隐式提交机制存在差异,学习和生产使用请结合对应数据库官方文档,本文不承担因为分类理解错误导致业务操作失误带来的数据异常相关责任。

本文来自作者[日常识简社]投稿,不代表启知新能源网立场,如若转载,请注明出处:https://www.qzdaily.com.cn/shbk/202611/7332.html

赞 (3)

今日大家都在搜的词:

发表回复

本站作者后才能评论

评论列表(4条)

  • 日常识简社
    日常识简社 2026年11月12日

    我是启知新能源网的签约作者“日常识简社”!

  • 日常识简社
    日常识简社 2026年11月12日

    希望本篇文章《sql 语言的数据库语句分类 四大类详解》能对你有所帮助!

  • 日常识简社
    日常识简社 2026年11月12日

    本站[启知新能源网]内容主要涵盖:光伏,风电,储能,氢能,户用光伏,家用光伏,光伏投资,光伏新闻,光伏政策,太阳能,多晶硅,逆变器,太阳能电池,光热,组件

  • 日常识简社
    日常识简社 2026年11月12日

    本文概览:SQL 也就是结构化查询语言,数据库语句按照功能一共划分为五大类,分别是 DQL 数据查询语言 DML 数据操纵语言 DDL 数据定义语言 DCL 数据控制语言 TCL 事务控制语言,日常开发最常接触的是 DQL 和 DML,也就是增删改查相关语句,DDL 用来创建修改删除表 索引 视图这类数据库对象,DCL 负责账号权限分配回收,TCL 专门用来控制事务提交和回滚,很多新手容易混淆 DML 和 DDL,DML 是修改表里的数据,DDL 是修改表结构本身,二者触发的日志 锁机制 隐式提交行为都不一样,理解这套分类是写 SQL 排查报错 优化数据库操作的基础,不管是 SQL Server MySQL Oracle,这套分类标准是通用的,只是每一类里面具体关键字写法会有少量差异。

联系我们

联系:143 0457 151

工作时间:周一至周五,9:30-18:30,节假日休息

关注我们