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 TRANSACTIONCOMMITROLLBACK),以确保数据的一致性(如批量插入数据时,若中途出错可回滚);

  • 影响行数 ​: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)的核心职责之一;

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

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

五、四大语言的核心区别

维度 DQL(数据查询语言)​ DML(数据操作语言)​ DDL(数据定义语言)​ DCL(数据控制语言)​
核心功能 从数据库中检索数据 修改数据库中的数据(增、删、改) 定义或修改数据库结构(表、视图等) 控制数据库访问权限(授权、撤销)
核心语句 SELECT INSERTUPDATEDELETE CREATEALTERDROPTRUNCATE GRANTREVOKE
数据修改性 只读,不改变数据库中的数据 直接修改数据库中的数据 不直接操作数据,仅修改结构 不直接操作数据或结构,仅管理权限
事务支持 无需事务(只读操作) 需要事务(确保操作的原子性) 无需事务(自动提交) 部分支持(如COMMIT/ROLLBACK用于权限操作)
影响对象 影响查询结果集(临时虚拟表) 影响表中的数据内容 影响数据库结构(表、视图等) 影响用户或角色的权限
相关推荐
苏打水com3 小时前
企业级数据库实操手册:从架构部署到安全运维的落地指南
数据库·后端
不会kao代码的小王4 小时前
突破机房围墙:openEuler设备的公网管理实战指南
开发语言·数据库·笔记
周杰伦_Jay4 小时前
【Git操作详解】Git进行版本控制与管理,包括分支,提交,合并,标签、远程仓库查看
大数据·ide·git·科技·分类·github
盒马coding4 小时前
PostgresWAL文件和序列号
数据库·oracle
一人の梅雨4 小时前
京东商品详情深度解析:从接口调用到商业价值挖掘的技术实现
服务器·数据库·php
xhbh6664 小时前
【实战避坑】MySQL自增主键(AUTO_INCREMENT)全解:从锁机制、间隙问题到分库分表替代方案
android·数据库·mysql·mysql自增主键
hh真是个慢性子5 小时前
mongodb慢查询优化 速度欻欻滴~
数据库·mongodb·性能优化·慢查询
色空大师5 小时前
【MongoDB的RLE压缩数据存储】
数据库·mongodb
安当加密5 小时前
通过TDE透明加密实现人大金仓数据库的免改造存储加密方案
数据库·金仓·透明加密