结构与语法

MatrixOne 使用类 MySQL 的 SQL 方言。写语句时需要注意注释写法、标识符规则,以及保留关键字与普通关键字的区别。

注释

支持三种常见注释形式:

形式

说明

# ...

# 到行尾

-- ...

双破折号后须跟至少一个空格或控制字符,到行尾

/* ... */

C 风格;可跨多行,也可嵌在表达式中间

SELECT 100 - 99;   -- 行尾注释
SELECT 100 - 99;   # 同样是行尾注释
SELECT 100 /* 中间注释 */ - 99;

标识符

库名、表名、列名等标识符:

  • 一般可直接写字母、数字与下划线(不要以数字开头,除非加引号)。

  • 保留关键字作标识符时,必须用反引号包裹,例如 `select``order`

  • 即使使用 库名.表名 限定,保留关键字仍建议(在 MatrixOne 中通常必须)用反引号;创建库表时尽量避开保留字。

-- 错误:select 是保留关键字
CREATE TABLE select (a INT);

-- 正确
CREATE TABLE `select` (a INT);

非保留关键字(如部分 MatrixOne 扩展词)通常可直接当标识符用,无需反引号;若不确定,统一加反引号最稳妥。

关键字

  • 关键字:在 SQL 中有特殊含义的词,如 SELECTUPDATEDELETE

  • 保留关键字:作标识符时必须加反引号,否则解析失败。

  • 非保留关键字:一般可直接作标识符。

MatrixOne 保留字集合与 MySQL 大体相近,并包含部分 MatrixOne 特有保留字(源文档中常标为与 MySQL 差异项,例如 CONFIGCURRENT_ROLE 等)。完整字母表会随版本微调;写 DDL 时:

  1. 优先使用业务语义清晰、非保留的名字。

  2. 若必须用保留字,全程反引号。

  3. 客户端报 SQL parser error 且提示 near 某词时,先检查是否未加反引号的保留字。

语句结束与大小写

  • 交互客户端通常以 ; 结束语句。

  • 关键字大小写不敏感;标识符大小写行为受 lower_case_table_names 等系统变量影响(见系统变量)。默认倾向表名大小写不敏感(值为 1 的常见配置)。

相关页面