SQL 语句的分类
在 MatrixOne 中,SQL 语句包含多种分类,每一种分类的定义与包含内容按照如下描述的每个部分所展示:
DDL - 数据定义语言
数据定义语言(Data Definition Language,DDL)是 DBMS 语言的一种,用于明确定义数据对象。在 MatrixOne 中,DDL 语句分为五个类别:
CREATE 语句,创建 MatrixOne 中各类对象
- CREATE DATABASE
- CREATE INDEX
- CREATE TABLE
- CREATE EXTERNAL TABLE
- CREATE PUBLICATION
- CREATE SEQUENCE
- CREATE STAGE
- CREATE...FROM...PUBLICATION...
- CREATE VIEW
DROP 语句,删除 MatrixOne 中各类对象
ALTER 语句,修改 MatrixOne 中各类对象
TRUNCATE 语句,清空表中的数据
DML - 数据修改语言
数据修改语言(Data Manipulation Language, DML)用于数据库操作,包括对数据库中的对象和资料执行访问工作的编程语句。在 MatrixOne 中,DML 包含如下分类:
INSERT 语句,用于在表中插入新行
DELETE 语句,用于在表中删除已存在的行
UPDATE 语句,修改表中已存在行的数据
LOAD DATA 语句,从文件批量导入数据到数据库
REPLACE 语句,替换行
DQL - Data Query Language
查询类语句(Data Query Language, DQL)用于检索 MatrixOne 中现有数据。以 SELECT 语句为核心,分为以下几类:
单表查询,查询层级只有一层,只涉及到单表的查询
子查询(Subquery),也称为嵌套查询或子选择,是 SELECT 子查询语句嵌入在另一个 SQL 查询的查询方式,分为关联子查询与非关联子查询
关联查询(Join Query),将多表之间的结果进行关联并输出结果的查询方式
公用表达式(Common Table Expressions),将某些查询作为是临时结果,可以在其他 SQL 中引用,如 SELECT, INSERT, UPDATE 和 DELETE,其仅存在于查询执行期间
组合查询,将多个查询的结果进行组合,以集合的方式进行呈现,分为并集(UNION)、交集(INTERSECT)、差集(MINUS)
除 SELECT STATEMENT 之外,还包含了针对常量的查询 VALUES 语句
以及 mo-dump 工具所对应的内部命令
TCL - 事务语言
事务语言是 MatrixOne 中提供事务管控专用的语言,包括如下几类:
START TRANSACTION,开启事务,在 MatrixOne 中可以使用其方言 BEGIN 实现替代
START TRANSACTION;
TRANSACTION STATEMENTS
```
### COMMIT,提交事务,用于在 START TRANSACTION 或非自动提交场景下对事务的显式提交
### ROLLBACK,回滚事务,用于在 START TRANSACTION 或非自动提交场景下对事务的显式回滚
DCL - 数据控制语言
数据控制语言(Data Control Language, DCL)包括资源的分配与回收、用户与角色的创建与删除、权限的授权与回收,分为如下分类:
CREATE 语句,用于创建租户、用户与角色
DROP 语句,用于删除用户与角色
ALTER 语句,修改租户、用户信息
GRANT 语句,对用户或角色进行授权操作
REVOKE 语句,对用户或角色进行回收操作
Other - 管理语言
管理语言包含与数据无直接关联的数据库参数、资源分配的获取与修改,包括如下语句种类:
SHOW 语句
通过 SHOW 语句,获取信息:
- SHOW DATABASES
- SHOW CREATE TABLE
- SHOW CREATE VIEW
- SHOW CREATE PUBLICATION
- SHOW TABLES
- SHOW INDEX
- SHOW COLLATION
- SHOW COLUMNS
- SHOW FUNCTION STATUS
- SHOW GRANT
- SHOW PROCESSLIST
- SHOW PUBLICATIONS
- SHOW ROLES
- SHOW SEQUENCES
- SHOW STAGE
- SHOW SUBSCRIPTIONS
- SHOW VARIABLES
SET 语句
通过 SET 语句用户可以对各类数据库参数进行调整,并通过 SHOW 命令呈现
KILL 语句
中止某个数据库连接的语句:
USE 语句
用于连接某个已存在的数据库:
Explain 语句
用于查看 SQL 执行计划:
PREPARE 语句
准备一条 SQL 语句并给它分配一个名称:
EXECUTE 语句
使用 PREPARE 准备好的语句名称并执行:
DEALLOCATE PREPARE 语句
释放使用 PREPARE 生成的预编译语句。在释放预编译语句后,再次执行预编译的语句会导致错误: