SQL(Structured Query Language)包括以下四种主要语言类别,分别用于不同的数据库操作:
1. DCL(Data Control Language,数据控制语言)
用于控制数据库访问权限和安全。
常见命令:
GRANT:授予用户或角色权限。
GRANT SELECT, INSERT ON table_name TO user_name;
REVOKE:撤销用户或角色的权限。
REVOKE SELECT, INSERT ON table_name FROM user_name;
应用场景:
- 管理用户权限(如 SELECT、INSERT、UPDATE、DELETE)。
- 控制数据库对象(如表、视图)的访问。
2. DDL(Data Definition Language,数据定义语言)
用于定义和管理数据库对象(如表、索引、视图等)的结构。
常见命令:
CREATE:创建数据库对象。
CREATE TABLE table_name ( column1 datatype, column2 datatype, ... );
ALTER:修改数据库对象。
ALTER TABLE table_name ADD column_name datatype;
DROP:删除数据库对象。
DROP TABLE table_name;
TRUNCATE:清空表中的数据(保留表结构)。
TRUNCATE TABLE table_name;
应用场景:
- 创建、修改或删除表、索引、视图等。
- 定义数据库架构。
3. DML(Data Manipulation Language,数据操作语言)
用于操作数据库中的数据(增删改查)。
常见命令:
INSERT:插入数据。
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
UPDATE:更新数据。
UPDATE table_name SET column1 = value1 WHERE condition;
DELETE:删除数据。
DELETE FROM table_name WHERE condition;
应用场景:
- 操作表中的数据(增删改)。
- 执行事务(如
BEGIN TRANSACTION
、COMMIT
、ROLLBACK
)。
4. DQL(Data Query Language,数据查询语言)
用于查询数据库中的数据。
常见命令:
SELECT:查询数据。
SELECT column1, column2 FROM table_name WHERE condition;
应用场景:
- 检索和过滤数据。
- 聚合和分析数据(如
GROUP BY
、HAVING
、ORDER BY
)。
总结对比
类别 | 功能 | 常见命令 | 应用场景 |
---|---|---|---|
DCL | 控制权限 | GRANT , REVOKE |
管理用户权限和访问控制 |
DDL | 定义结构 | CREATE , ALTER , DROP , TRUNCATE |
创建、修改或删除数据库对象 |
DML | 操作数据 | INSERT , UPDATE , DELETE |
增删改数据,执行事务 |
DQL | 查询数据 | SELECT |
检索、过滤和分析数据 |
示例场景
创建表并插入数据(DDL + DML):
CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), age INT ); INSERT INTO users (id, name, age) VALUES (1, 'Alice', 25);
查询数据并授予权限(DQL + DCL):
SELECT * FROM users WHERE age > 20; GRANT SELECT ON users TO user1;
更新数据并提交事务(DML):
SQLBEGIN TRANSACTION; UPDATE users SET age = 30 WHERE id = 1; COMMIT;
通过理解 DCL、DDL、DML 和 DQL 的区别和用法,可以更好地管理和操作数据库!