目录
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 的语法细节不同)。