SQL 语句的分类¶
在 MatrixOne 中,SQL 语句包含多种分类,每一种分类的定义与包含内容按照如下描述的每个部分所展示:
DDL - 数据定义语言¶
数据定义语言(Data Definition Language,DDL)是 DBMS 语言的一种,用于明确定义数据对象。在 MatrixOne 中,DDL 语句分为五个类别:
CREATE 语句,创建 MatrixOne 中各类对象¶
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 或非自动提交场景下对事务的显式提交¶
START TRANSACTION;
TRANSACTION STATEMENTS
COMMIT;
OR
SET AUTOCOMMIT=0;
TRANSACTION STATEMENTS
COMMIT;
ROLLBACK,回滚事务,用于在 START TRANSACTION 或非自动提交场景下对事务的显式回滚¶
START TRANSACTION;
TRANSACTION STATEMENTS
ROLLBACK;
OR
SET AUTOCOMMIT=0;
TRANSACTION STATEMENTS
ROLLBACK;
DCL - 数据控制语言¶
数据控制语言(Data Control Language, DCL)包括资源的分配与回收、用户与角色的创建与删除、权限的授权与回收,分为如下分类:
CREATE 语句,用于创建用户与角色¶
DROP 语句,用于删除用户与角色¶
ALTER 语句,修改用户信息¶
GRANT 语句,对用户或角色进行授权操作¶
REVOKE 语句,对用户或角色进行回收操作¶
Other - 管理语言¶
管理语言包含与数据无直接关联的数据库参数、资源分配的获取与修改,包括如下语句种类:
SHOW 语句¶
通过 SHOW 语句,获取信息:
SET 语句¶
通过 SET 语句用户可以对各类数据库参数进行调整,并通过 SHOW 命令呈现
KILL 语句¶
中止某个数据库连接的语句:
USE 语句¶
用于连接某个已存在的数据库:
Explain 语句¶
用于查看 SQL 执行计划:
PREPARE 语句¶
准备一条 SQL 语句并给它分配一个名称:
EXECUTE 语句¶
使用 PREPARE 准备好的语句名称并执行:
DEALLOCATE PREPARE 语句¶
释放使用 PREPARE 生成的预编译语句。在释放预编译语句后,再次执行预编译的语句会导致错误: