结构与语法¶
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 中有特殊含义的词,如
SELECT、UPDATE、DELETE。保留关键字:作标识符时必须加反引号,否则解析失败。
非保留关键字:一般可直接作标识符。
MatrixOne 保留字集合与 MySQL 大体相近,并包含部分 MatrixOne 特有保留字(源文档中常标为与 MySQL 差异项,例如 CONFIG、CURRENT_ROLE 等)。完整字母表会随版本微调;写 DDL 时:
优先使用业务语义清晰、非保留的名字。
若必须用保留字,全程反引号。
客户端报
SQL parser error且提示 near 某词时,先检查是否未加反引号的保留字。
语句结束与大小写¶
交互客户端通常以
;结束语句。关键字大小写不敏感;标识符大小写行为受
lower_case_table_names等系统变量影响(见系统变量)。默认倾向表名大小写不敏感(值为 1 的常见配置)。