目录
DDL (Data Definition Language) - 数据定义语言
DML (Data Manipulation Language) - 数据操作语言
DQL (Data Query Language) - 数据查询语言
DCL (Data Control Language) - 数据控制语言
前言
SQL,全称Structured Query Language,是数据库操作的标准语言,允许用户以一种简单而有效的方式与数据库进行交互。SQL语言被设计为易于理解且功能强大,被分为四个主要类别,分别是DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)和DCL(数据控制语言)。
SQL语言核心概念速览:从DDL到DCL全面解析
类别 | 英文全称 | 功能描述 | 示例命令 |
---|---|---|---|
DDL (数据定义语言) | Data Definition Language | 用于定义和管理数据库的结构,如创建、修改或删除数据库对象 | CREATE, ALTER, DROP |
DML (数据操作语言) | Data Manipulation Language | 用于对数据库中的数据进行操作,包括插入、更新和删除数据记录 | INSERT, UPDATE, DELETE |
DQL (数据查询语言) | Data Query Language | 用于从数据库中检索数据,是最常见的数据读取操作 | SELECT |
DCL (数据控制语言) | Data Control Language | 用于授予或收回访问数据库的权限,以及管理事务 | GRANT, REVOKE, COMMIT, ROLLBACK |
详细解释
-
DDL (数据定义语言): DDL语句主要用于创建、修改和删除数据库中的各种对象,比如数据库本身、表、视图、索引、存储过程等。这类操作是数据库架构设计和管理的基础。例如,
CREATE TABLE
语句用来创建新表,ALTER TABLE
语句可以修改现有表的结构,而DROP TABLE
语句则会删除一个表及其所有数据。 -
DML (数据操作语言): DML语句用于管理数据库中的数据记录,即对数据进行增删改操作。
INSERT
语句用来插入新的数据行,UPDATE
语句可以更新已存在的数据行的内容,而DELETE
语句则是用来删除不需要的数据行。 -
DQL (数据查询语言): DQL是SQL中用于查询数据的主要部分,允许用户从数据库中检索所需的信息。
SELECT
语句是最核心的DQL命令,可以单独使用或结合其他诸如WHERE
、ORDER BY
、GROUP BY
等子句来完成复杂的查询需求,如筛选、排序和分组数据。 -
DCL (数据控制语言): DCL语句用于管理数据库的安全性和事务控制。通过
GRANT
和REVOKE
命令,数据库管理员可以控制用户对数据库对象的访问权限,确保数据的安全。而COMMIT
和ROLLBACK
则用于管理事务,确保数据操作的原子性和一致性,即要么全部执行成功,要么全部不执行,防止数据处于不一致状态。
DDL (Data Definition Language) - 数据定义语言
DDL负责定义数据库的结构,包括创建、修改和删除数据库对象,如数据库、表、视图、索引等。是数据库管理员用来构建数据库框架的工具。
示例代码:
- 创建数据库:
CREATE DATABASE MyDatabase;
- 创建表:
CREATE TABLE Employees (
ID INT PRIMARY KEY,
Name VARCHAR(100),
Department VARCHAR(50),
Salary DECIMAL(10,2)
);
- 修改表结构:
ALTER TABLE Employees
ADD COLUMN JoinDate DATE;
- 删除表:
DROP TABLE Employees;
注:DDL语句是立即执行的,直接作用于数据库的结构而不涉及数据内容。DDL操作是不可逆的,一旦执行了如
DROP TABLE
这样的语句,表及其数据就会永久丢失,除非事先进行了备份。
DML (Data Manipulation Language) - 数据操作语言
DML用于对数据库中的数据进行增删改查以外的直接操作,如插入、更新、删除数据记录。是日常数据管理中最常用的SQL部分。
示例代码:
- 插入数据:
INSERT INTO Employees (ID, Name, Department, Salary)
VALUES (1, 'Alice Smith', 'Sales', 50000.00);
- 更新数据:
UPDATE Employees
SET Salary = Salary + 1000
WHERE Department = 'IT';
- 删除数据:
DELETE FROM Employees WHERE ID = 2;
注:DML语句影响的是数据库中的数据内容,而非结构。使用这些语句时,可以通过
WHERE
子句精确指定操作的记录,以避免误操作。DQL (Data Query Language) - 数据查询语言
DQL是SQL中用于检索数据的部分,最常见的就是
SELECT
语句。允许用户根据不同的条件和要求提取数据,是数据分析和报表制作的基础。示例代码:
- 基本查询:
SELECT Name, Salary
FROM Employees;
- 条件查询:
SELECT *
FROM Employees
WHERE Department = 'HR' AND Salary > 60000;
- 分组与排序:
SELECT Department, AVG(Salary) AS AverageSalary FROM Employees GROUP BY Department ORDER BY AverageSalary DESC;
注:DQL非常灵活,通过组合
JOIN
、GROUP BY
、HAVING
、ORDER BY
等子句,可以实现复杂的数据筛选、分组和排序,是SQL学习的重点之一。DCL (Data Control Language) - 数据控制语言
DCL用于设置和管理数据库用户权限,以及控制事务处理过程。主要包括
GRANT
、REVOKE
语句来授权和取消用户对数据库对象的操作权限,以及COMMIT
、ROLLBACK
来管理事务。示例代码:
- 授权权限:
GRANT SELECT, INSERT ON Employees TO 'new_user'@'localhost';
- 撤销权限:
REVOKE UPDATE ON Employees FROM 'new_user'@'localhost';
- 事务控制:
BEGIN TRANSACTION; -- 执行一系列DML操作 COMMIT; -- 或者 ROLLBACK;
注:DCL对于保障数据库安全至关重要,通过精细的权限管理,可以防止未经授权的访问和操作,保护数据不被非法篡改或泄露。事务控制则确保数据的一致性和完整性,即便在执行过程中遇到错误,也能回滚到事务开始前的状态。