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 的區別和用法,可以更好地管理和操作數據庫!