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: 重命名对象

示例:

sql
-- 创建表
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操作)

示例:

sql
-- 插入数据
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: 查询数据

示例:

sql
-- 基本查询
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: 撤销权限

示例:

sql
-- 授予用户查询权限
GRANT SELECT ON employees TO user1;

-- 撤销用户所有权限
REVOKE ALL PRIVILEGES ON employees FROM user1;

5. TCL (Transaction Control Language) - 事务控制语言

用于管理数据库事务。

主要命令:

  • COMMIT: 提交事务
  • ROLLBACK: 回滚事务
  • SAVEPOINT: 设置保存点

示例:

sql
-- 开始事务(隐式或显式,取决于数据库)
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 语句,以及理解数据库操作的完整生命周期。