基础知识:SQL——数据库操作的核心语言
SQL(结构化查询语言)是关系型数据库管理系统中的标准语言,广泛用于数据的定义、操作、控制和查询。SQL 包含多个子语言,分别用于不同的数据库操作任务,包括数据定义(DDL)、数据操纵(DML)、数据控制(DCL)、数据查询(DQL)和事务控制(TCL)。本文将详细介绍这些子语言的作用、常用命令,并通过示例代码展示它们的实际应用。
文章目录
- 基础知识:SQL——数据库操作的核心语言
- 一、概述
- 二、SQL 子语言详解
- 1. DDL(数据定义语言,Data Definition Language)
- 2. DML(数据操纵语言,Data Manipulation Language)
- 3. DCL(数据控制语言,Data Control Language)
- 4. DQL(数据查询语言,Data Query Language)
- 5. TCL(事务控制语言,Transaction Control Language)
- 三、SQL 各子语言对比总结
一、概述
SQL(结构化查询语言,Structured Query Language)是关系型数据库管理系统(RDBMS)中用于管理和操作数据的标准语言。SQL 语言可以分为不同的子语言,每一种子语言都有其特定的用途和功能。理解这些子语言及其命令,是掌握数据库操作的基础。
二、SQL 子语言详解
1. DDL(数据定义语言,Data Definition Language)
作用:DDL 用于定义和管理数据库结构和对象,例如表、索引、视图和约束。通过 DDL,我们可以创建、修改或删除数据库对象。
常用命令:
CREATE
:用于创建新的数据库对象,例如表或视图。ALTER
:用于修改现有的数据库对象。DROP
:用于删除数据库对象。
示例:
-- 创建一个新的表 Customers
CREATE TABLE Customers (ID INT PRIMARY KEY,Name VARCHAR(100),Email VARCHAR(100)
);-- 修改表,添加一个新的列 PhoneNumber
ALTER TABLE Customers ADD PhoneNumber VARCHAR(15);-- 删除表 Customers
DROP TABLE Customers;
解释:
在上述示例中,CREATE TABLE
命令用于定义一个新的表 Customers
,包含三个列:ID
、Name
和 Email
。ALTER TABLE
命令则用于修改现有的表结构,向表中添加新的列 PhoneNumber
。最后,DROP TABLE
命令用于删除 Customers
表。
2. DML(数据操纵语言,Data Manipulation Language)
作用:DML 用于对数据库中的数据进行操作,包括查询、插入、更新和删除数据。它是我们与数据库中实际数据交互的主要方式。
常用命令:
SELECT
:用于查询数据。INSERT
:用于插入新数据。UPDATE
:用于更新现有数据。DELETE
:用于删除数据。
示例:
-- 查询所有客户信息
SELECT * FROM Customers;-- 向表中插入一条新记录
INSERT INTO Customers (Name, Email) VALUES ('Alice', 'alice@example.com');-- 更新客户信息
UPDATE Customers SET Email = 'alice123@example.com' WHERE Name = 'Alice';-- 删除一条记录
DELETE FROM Customers WHERE Name = 'Alice';
解释:
SELECT
命令用于从 Customers
表中检索所有数据。INSERT
命令将新的客户信息插入表中。UPDATE
命令修改了 Alice
的邮箱地址,而 DELETE
命令则删除了表中 Alice
的记录。
3. DCL(数据控制语言,Data Control Language)
作用:DCL 用于控制数据库用户的权限管理,主要用于授予或撤销用户对数据库的访问权限。
常用命令:
GRANT
:授予用户特定权限。REVOKE
:撤销用户的特定权限。
示例:
-- 授予用户 user1 对 Customers 表的 SELECT 权限
GRANT SELECT ON Customers TO 'user1';-- 撤销用户 user1 对 Customers 表的 SELECT 权限
REVOKE SELECT ON Customers FROM 'user1';
解释:
在这个示例中,GRANT
命令用于赋予用户 user1
对 Customers
表的查询权限,而 REVOKE
命令则撤销了这个权限。通过 DCL,数据库管理员可以有效地管理数据库安全。
4. DQL(数据查询语言,Data Query Language)
作用:DQL 主要用于从数据库中查询数据,尽管 DQL 通常被包含在 DML 中,但有时也会被单独列出。SELECT
是 DQL 中的核心命令。
常用命令:
SELECT
:用于从数据库中检索数据。
示例:
-- 查询来自美国的客户信息
SELECT Name, Email FROM Customers WHERE Country = 'USA';
解释:
SELECT
命令用于从 Customers
表中查询所有来自美国的客户的姓名和邮箱信息。这是数据库操作中最常用的命令之一。
5. TCL(事务控制语言,Transaction Control Language)
作用:TCL 用于管理数据库中的事务,确保数据的一致性和完整性。事务是指一组操作,要么全部成功,要么全部失败。
常用命令:
COMMIT
:提交事务,将事务中的所有操作永久保存。ROLLBACK
:回滚事务,撤销事务中的所有操作。SAVEPOINT
:在事务中设置保存点,以便部分回滚。
示例:
-- 开始事务
BEGIN;-- 向 Orders 表中插入数据
INSERT INTO Orders (OrderID, ProductID) VALUES (1, 1001);-- 提交事务
COMMIT;-- 或者可以回滚事务
ROLLBACK;
解释:
BEGIN
命令开始一个事务。INSERT
命令向 Orders
表中插入一条记录。如果操作成功且无错误发生,COMMIT
命令会提交事务,将操作永久保存。如果出现错误或想要撤销操作,ROLLBACK
命令则会回滚事务。
三、SQL 各子语言对比总结
子语言 | 全称 | 主要作用 | 常用命令 | 示例操作 |
---|---|---|---|---|
DDL | 数据定义语言(Data Definition Language) | 定义和管理数据库结构和对象 | CREATE 、ALTER 、DROP | 创建表、修改表结构、删除表 |
DML | 数据操纵语言(Data Manipulation Language) | 操作数据库中的数据 | SELECT 、INSERT 、UPDATE 、DELETE | 查询数据、插入数据、更新数据、删除数据 |
DCL | 数据控制语言(Data Control Language) | 管理数据库用户权限 | GRANT 、REVOKE | 授予权限、撤销权限 |
DQL | 数据查询语言(Data Query Language) | 查询数据库中的数据(通常包含在 DML 中) | SELECT | 从数据库中检索特定数据 |
TCL | 事务控制语言(Transaction Control Language) | 管理数据库事务,确保数据一致性 | COMMIT 、ROLLBACK 、SAVEPOINT | 提交事务、回滚事务、设置事务保存点 |
这个表格简洁地对比了 SQL 的不同子语言,涵盖了它们的全称、主要作用、常用命令以及典型的示例操作。这有助于快速理解每种子语言的用途和功能。