在SQL中,根据操作的对象不同将其分为四种语言DDL
、DML
、DCL
、TCL
。老是记不住这四个分别对应的是什么,于是在此一记。
DDL(Data Definition Language)数据库定义语言
DDL(Data Definition Language)用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束,它操作完不需要commit即可生效。有以下几种:
- CREATE
- ALTER
- DROP
- TRUNCATE
- COMMENT
- RENAME
DML(Data Manipulation Language)数据操纵语言
DML(Data Manipulation Language)用于让用户或程序员使用,实现对数据库中数据的操作。DML分成交互型DML
和嵌入型DML
两类。依据语言的级别,DML又可分成过程性DML
和非过程性DML
两种,它需要commit才能生效(SELECT不需要)。有以下几种:
- SELECT
- INSERT
- UPDATE
- DELETE
- MERGE
- CALL
- EXPLAIN PLAN
- LOCK TABLE
DCL(Data Control Language)数据库控制语言
DCL(Data Control Language)主要是DBA用于权限相关的操作,主要有以下几种:
- GRANT 授权
- REVOKE 取消授权
TCL(Transaction Control Language)事务控制语言
TCL(Transaction Control Language)用于事务相关的操作,主要有以下几种:
- SAVEPOINT 设置保存点
- ROLLBACK 回滚
- SET TRANSACTION
SQL主要分成四部分:
- 数据定义。(SQL DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消操作。
- 数据操纵。(SQL DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。
- 数据控制。包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。
- 嵌入式SQL的使用规定。涉及到SQL语句嵌入在宿主语言程序中使用的规则。