目錄
1. DQL(Data Query Language)數據查詢語言
主要命令:
SELECT
2. DDL(Data Definition Language)數據定義語言
主要命令:
CREATE
ALTER
DROP
TRUNCATE(清空表數據,保留結構)
RENAME(部分數據庫支持)
3. DML(Data Manipulation Language)數據操縱語言
主要命令:
INSERT
UPDATE
DELETE
MERGE(合并數據,部分數據庫支持)
4. DCL(Data Control Language)數據控制語言
主要命令:
GRANT
REVOKE
DENY(SQL Server 特有)
5. TCL(Transaction Control Language)事務控制語言
主要命令:
COMMIT
ROLLBACK
SAVEPOINT
SET TRANSACTION
注意事項:
DDL(Data Definition Language):數據定義語言
DML(Data Manipulation Language):數據操縱語言
DCL(Data Control Language):數據控制語言
DTL(Data Transaction Language):數據事務語言
TCL(Transaction Control Language):事務控制語言
1. DQL(Data Query Language)數據查詢語言
?用于查詢數據,不修改數據本身。
主要命令:
SELECT
--語法
SELECT column1, column2 FROM table_name WHERE condition;
--舉例
SELECT * FROM employees WHERE salary > 5000;
2. DDL(Data Definition Language)數據定義語言
用于定義或修改數據庫結構(表、索引、視圖等)。
主要命令:
CREATE
CREATE TABLE table_name (column1 datatype, column2 datatype);
CREATE INDEX idx_name ON table_name(column);
ALTER
ALTER TABLE table_name ADD column_name datatype;
ALTER TABLE employees ADD email VARCHAR(100);
DROP
DROP TABLE table_name;
TRUNCATE
(清空表數據,保留結構)
TRUNCATE TABLE table_name;
RENAME
(部分數據庫支持)
RENAME TABLE old_name TO new_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;
MERGE
(合并數據,部分數據庫支持)
MERGE INTO target_table USING source_table ON condition WHEN MATCHED THEN UPDATE...;
4. DCL(Data Control Language)數據控制語言
用于權限管理和訪問控制。
主要命令:
GRANT
GRANT SELECT, INSERT ON table_name TO user_name;
REVOKE
REVOKE DELETE ON table_name FROM user_name;
DENY
(SQL Server 特有)
DENY SELECT ON table_name TO user_name;
5. TCL(Transaction Control Language)事務控制語言
用于管理數據庫事務(DTL 通常等同于 TCL)。
主要命令:
COMMIT
COMMIT; -- 提交當前事務
ROLLBACK
ROLLBACK; -- 回滾當前事務
SAVEPOINT
SAVEPOINT savepoint_name;
ROLLBACK TO savepoint_name;
SET TRANSACTION
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
注意事項:
-
DTL 和 TCL?通常指同一組命令(事務控制),不同數據庫術語可能略有差異。
-
部分命令(如?
TRUNCATE
)在有些數據庫中歸類為 DDL,因為它是直接操作表結構的。 -
數據庫實現可能有差異(例如 MySQL 和 Oracle 的語法細節不同)。