SQL中的四大核心语言:DQL、DML、DDL、DCL

SQL中的四大核心语言:DQL、DML、DDL、DCL详解

一、DQL(数据查询语言):数据检索的核心工具

​DQL(Data Query Language,数据查询语言)​ 是SQL中专门用于从数据库中检索数据 的语言,其核心目标是获取符合条件的数据,而不改变数据库的结构或内容。它是SQL中最基础、最常用的子集,几乎所有数据库操作都离不开数据查询。

​核心语句 ​:SELECT(查询)、WHERE(条件筛选)、JOIN(多表关联)、GROUP BY(分组)、ORDER BY(排序)、HAVING(分组后筛选)、LIMIT(限制结果数量)等。

​主要功能​:

  • 基础查询:检索表中的指定列或所有列(如SELECT name, age FROM employees;);

  • 条件查询:通过WHERE子句筛选符合条件的行(如SELECT * FROM products WHERE price > 100;);

  • 排序与分组:通过ORDER BY对结果排序(如SELECT * FROM orders ORDER BY order_date DESC;),通过GROUP BY对数据进行分组(如SELECT department, COUNT(*) FROM employees GROUP BY department;);

  • 聚合计算:使用SUM()(求和)、AVG()(平均值)、COUNT()(计数)等聚合函数统计数据(如SELECT AVG(salary) FROM employees;);

  • 多表关联:通过INNER JOIN(内连接)、LEFT JOIN(左连接)等关联多个表(如SELECT e.name, d.department_name FROM employees e INNER JOIN departments d ON e.department_id = d.department_id;)。

​特点​:

  • ​只读性​:DQL语句不会修改数据库中的数据,仅返回查询结果集(临时虚拟表);

  • ​灵活性​:支持复杂查询(如子查询、嵌套查询、函数应用),满足多样化数据检索需求;

  • ​非破坏性​:查询操作不会影响原始数据,仅用于数据分析和信息提取。

二、DML(数据操作语言):数据修改的核心工具

​DML(Data Manipulation Language,数据操作语言)​ 是SQL中用于修改数据库中数据 的语言,其核心目标是实现对表中数据的增、删、改操作,直接影响数据库中的数据内容。

​核心语句 ​:INSERT(插入)、UPDATE(更新)、DELETE(删除)。

​主要功能​:

  • 插入数据:向表中添加新记录(如INSERT INTO employees (name, age) VALUES ('张三', 25););

  • 更新数据:修改表中已存在的记录(如UPDATE employees SET age = 26 WHERE name = '张三';);

  • 删除数据:删除表中符合条件的记录(如DELETE FROM employees WHERE age < 18;)。

​特点​:

  • ​数据修改性​:DML语句会直接改变数据库中的数据内容,是数据库应用中最常用的操作;

  • ​事务相关性 ​:DML操作通常需要事务控制 ​(如BEGIN TRANSACTION、COMMIT、ROLLBACK),以确保数据的一致性(如批量插入数据时,若中途出错可回滚);

  • ​影响行数 ​:DML语句执行后会返回受影响的行数(如UPDATE语句返回修改的行数),用于判断操作是否成功。

三、DDL(数据定义语言):数据库结构管理的核心工具

​DDL(Data Definition Language,数据定义语言)​ 是SQL中用于定义或修改数据库结构 的语言,其核心目标是管理数据库的逻辑结构​(如表、视图、索引等),不涉及数据内容的修改。

​核心语句 ​:CREATE(创建)、ALTER(修改)、DROP(删除)、TRUNCATE(清空)。

​主要功能​:

  • 创建对象:创建数据库、表、视图、索引等(如CREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), age INT););

  • 修改对象:修改现有对象的结构(如ALTER TABLE employees ADD email VARCHAR(100););

  • 删除对象:删除数据库、表、视图等(如DROP TABLE employees;);

  • 清空表:清空表中的所有数据但保留表结构(如TRUNCATE TABLE employees;)。

​特点​:

  • ​结构管理性​:专注于数据库对象的创建、修改和删除,是数据库设计的核心工具;

  • ​不可回滚性 ​:DDL操作默认自动提交 ​(无事务支持),无法回滚(如DROP TABLE删除表后无法恢复);

  • ​影响元数据​:DDL操作会改变数据库的元数据(如表结构、索引信息),需谨慎使用。

四、DCL(数据控制语言):数据库安全管理的核心工具

​DCL(Data Control Language,数据控制语言)​ 是SQL中用于控制数据库访问权限 的语言,其核心目标是管理用户对数据库对象的访问权限,确保数据库的安全性。

​核心语句 ​:GRANT(授权)、REVOKE(撤销授权)。

​主要功能​:

  • 授权:授予用户或角色对数据库对象的权限(如GRANT SELECT, INSERT ON employees TO 'user1'@'localhost';,授予user1查询和插入employees表的权限);

  • 撤销授权:撤销用户或角色的权限(如REVOKE DELETE ON employees FROM 'user1'@'localhost';,撤销user1删除employees表的权限)。

​特点​:

  • ​安全管理性​:专注于数据库的权限管理,是数据库管理员(DBA)的核心职责之一;

  • ​用户/角色管理 ​:可针对用户或角色(如admin、developer)分配权限,实现细粒度的访问控制;

  • ​权限类型 ​:支持多种权限(如SELECT、INSERT、UPDATE、DELETE、ALL PRIVILEGES等),覆盖数据库操作的各个方面。

五、四大语言的核心区别

​维度​ ​DQL(数据查询语言)​​ ​DML(数据操作语言)​​ ​DDL(数据定义语言)​​ ​DCL(数据控制语言)​​
​核心功能​ 从数据库中检索数据 修改数据库中的数据(增、删、改) 定义或修改数据库结构(表、视图等) 控制数据库访问权限(授权、撤销)
​核心语句​ SELECT INSERT、UPDATE、DELETE CREATE、ALTER、DROP、TRUNCATE GRANT、REVOKE
​数据修改性​ 只读,不改变数据库中的数据 直接修改数据库中的数据 不直接操作数据,仅修改结构 不直接操作数据或结构,仅管理权限
​事务支持​ 无需事务(只读操作) 需要事务(确保操作的原子性) 无需事务(自动提交) 部分支持(如COMMIT/ROLLBACK用于权限操作)
​影响对象​ 影响查询结果集(临时虚拟表) 影响表中的数据内容 影响数据库结构(表、视图等) 影响用户或角色的权限
相关推荐
画中有画3 分钟前
在自动化脚本中操作本地数据库
数据库·oracle·自动化
Decay__20 分钟前
09_MySQL 闪回与时间点恢复 —— binlog 回放、mysqlbinlog、PITR 与误删恢复
运维·数据库·sql·mysql·架构
太理摆烂哥27 分钟前
MySQL用户管理
数据库·mysql
NailiConveyor2 小时前
柔性物流方案如何适配工厂升级?自动化输送流水线定制要点
大数据·运维·自动化·制造·业界资讯
梦影_2 小时前
MySQL进阶教程(五)—— SQL调优(下)
android·大数据·数据库·后端·sql·mysql·database
考虑考虑2 小时前
mariadb数据库
数据库·后端·mariadb
没落之王3 小时前
三易五行看宋朝的三界确立
大数据·人工智能·算法
John_Hui4 小时前
Windows 10 安装版本:mysql-8.1.0-winx64.zip
数据库·windows·mysql
莫晓燚4 小时前
双机部署若依 (RuoYi‑Vue) 传统环境部署---实战
linux·运维·数据库·redis·mysql·nginx·ruoyi
samLi06205 小时前
【数据集】水星逆行及相关日期窗口数据(1973-2025年)
大数据