SQL 是什么?它有哪些分类(DDL、DML、DQL、DCL、TCL)?
最后更新:1/13/2026
AI 助手
会员专享功能
只有会员才能使用 AI 生成答案功能。 立即升级
Other Answers (1)
Generated by DeepSeek V3
SQL 概述及其分类
SQL 定义
SQL (Structured Query Language) 是结构化查询语言的简称,是一种用于管理关系型数据库的标准编程语言。它允许用户:
- 创建、修改和管理数据库结构
- 插入、更新、删除和查询数据
- 控制数据访问权限
- 管理事务
SQL 是与关系型数据库交互的主要语言,被 MySQL、PostgreSQL、Oracle、SQL Server 等主流数据库系统支持。
SQL 分类
SQL 根据功能可分为以下几类:
1. DDL (Data Definition Language) - 数据定义语言
用于定义和管理数据库结构(表、视图、索引等)。
主要命令:
CREATE: 创建数据库对象ALTER: 修改数据库对象结构DROP: 删除数据库对象TRUNCATE: 清空表内容(保留结构)RENAME: 重命名对象
示例:
-- 创建表
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
department VARCHAR(50),
salary DECIMAL(10,2)
);
-- 修改表结构
ALTER TABLE employees ADD COLUMN hire_date DATE;
-- 删除表
DROP TABLE employees;
2. DML (Data Manipulation Language) - 数据操作语言
用于操作表中的数据。
主要命令:
INSERT: 插入新记录UPDATE: 修改现有记录DELETE: 删除记录MERGE: 合并数据(UPSERT操作)
示例:
-- 插入数据
INSERT INTO employees (id, name, department, salary)
VALUES (1, 'John Doe', 'IT', 75000.00);
-- 更新数据
UPDATE employees
SET salary = 80000.00
WHERE id = 1;
-- 删除数据
DELETE FROM employees WHERE id = 1;
3. DQL (Data Query Language) - 数据查询语言
用于查询数据库中的数据。
主要命令:
SELECT: 查询数据
示例:
-- 基本查询
SELECT name, salary FROM employees WHERE department = 'IT';
-- 复杂查询
SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000
ORDER BY avg_salary DESC;
4. DCL (Data Control Language) - 数据控制语言
用于控制数据库访问权限。
主要命令:
GRANT: 授予权限REVOKE: 撤销权限
示例:
-- 授予用户查询权限
GRANT SELECT ON employees TO user1;
-- 撤销用户所有权限
REVOKE ALL PRIVILEGES ON employees FROM user1;
5. TCL (Transaction Control Language) - 事务控制语言
用于管理数据库事务。
主要命令:
COMMIT: 提交事务ROLLBACK: 回滚事务SAVEPOINT: 设置保存点
示例:
-- 开始事务(隐式或显式,取决于数据库)
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
-- 如果一切正常
COMMIT;
-- 如果出现错误
ROLLBACK;
-- 使用保存点
SAVEPOINT before_update;
-- 执行一些操作
ROLLBACK TO before_update;
总结
SQL 的这些分类涵盖了数据库管理的各个方面:
- DDL 定义结构
- DML 操作数据
- DQL 查询数据
- DCL 控制访问
- TCL 管理事务
理解这些分类有助于更好地组织和编写 SQL 语句,以及理解数据库操作的完整生命周期。