-
DDL: 管结构(定义表、库等)
-
DML: 管数据(增、删、改数据)
-
DQL: 管查询(查询数据,是DML的子集,但因极其重要而常被单列)
-
DCL: 管权限(控制谁能访问什么)
一、核心对比表格
| 类别 | 全称 | 核心职责 | 主要命令 |
|---|---|---|---|
| DDL (数据定义语言) | Data Definition Language | 定义和管理数据库结构 | CREATEALTERDROPTRUNCATERENAME |
| DML (数据操作语言) | Data Manipulation Language | 操作数据库中的数据 | INSERTUPDATEDELETE( SELECT) |
| DQL (数据查询语言) | Data Query Language | 查询数据库中的数据 | SELECTFROMWHERE等 |
| DCL (数据控制语言) | Data Control Language | 控制数据库的访问权限和安全 | GRANTREVOKE |
二、详细解释与示例
1. DDL - 数据定义语言
-
目标:创建和修改数据库本身的结构,如数据库、表、索引、视图等。
-
关键特性:自动提交,执行后立即生效,无法回滚。
sql
-- 创建表结构 (CREATE)
CREATE TABLE Employees (
ID INT PRIMARY KEY,
Name VARCHAR(100),
Salary DECIMAL(10, 2)
);
-- 修改表结构 (ALTER)
ALTER TABLE Employees ADD Department VARCHAR(50);
-- 删除整个表 (DROP)
DROP TABLE Employees;
2. DML - 数据操作语言
-
目标:对表中的记录进行增加、修改、删除操作。
-
关键特性:需要显式提交(
COMMIT)或回滚(ROLLBACK),操作在事务内进行。
sql
-- 插入数据 (INSERT) INSERT INTO Employees (ID, Name, Salary) VALUES (1, '张三', 50000); -- 更新数据 (UPDATE) UPDATE Employees SET Salary = 60000 WHERE ID = 1; -- 删除数据 (DELETE) DELETE FROM Employees WHERE Name = '张三';
3. DQL - 数据查询语言
-
目标:从一张或多张表中检索所需的数据,而不对数据本身进行任何修改。
-
说明:理论上,
SELECT被归为DML,因为它操作的是数据。但由于它只读的特性和使用频率极高,在实践中常被单独列为DQL。
sql
-- 查询数据 (SELECT) SELECT Name, Salary FROM Employees WHERE Salary > 40000 ORDER BY Salary DESC;
4. DCL - 数据控制语言
-
目标:管理数据库的用户权限,确保数据安全。
-
关键特性:由数据库管理员(DBA)或拥有高级权限的用户使用。
sql
-- 授予权限 (GRANT) GRANT SELECT, INSERT ON Employees TO user1; -- 撤销权限 (REVOKE) REVOKE DELETE ON Employees FROM user1;
2万+

被折叠的 条评论
为什么被折叠?



