[TOC] # 通用语法 ## 常量 * `INT_VALUE`:匹配整数类型常量,如`123`。 * `DECIMAL_VALUE`:匹配定点类型常量,如`123.456`。 * `STR_VALUE`:匹配字符串常量,如`abc`。 * `NULL`:匹配NULL常量。 * `STORAGE_SIZE`:匹配存储长度常量,整数形式默认单位为字节,字符串形式可指定单位为M或G,如`1024`或`'500M'`。 ~~~ const_value: INT_VALUE | DECIMAL_VALUE | STR_VALUE | NULL | STORAGE_SIZE STORAGE_SIZE: INT_VALUE | 'INT_VALUE[M|G]' ~~~ ## 字符集 ~~~ charset: default_charset | column_charset default_charset: [DEFAULT] {CHARSET | CHARACTER SET} [=] {UTF8 | UTF8MB4 | BINARY} column_charset: {CHARSET | CHARACTER SET} {UTF8 | UTF8MB4 | BINARY} ~~~ ## 排序规则 ~~~ collate: default_collate | column_collate default_collate: [DEFAULT] COLLATE [=] {UTF8MB4_GENERAL_CI | UTF8MB4_BIN | BINARY} column_collate: COLLATE {UTF8MB4_GENERAL_CI | UTF8MB4_BIN | BINARY} ~~~ ## 数据类型 ~~~ data_type: TINYINT[(precision)] [UNSIGNED] [ZEROFILL] | SMALLINT[(precision)] [UNSIGNED] [ZEROFILL] | MEDIUMINT[(precision)] [UNSIGNED] [ZEROFILL] | INT[(precision)] [UNSIGNED] [ZEROFILL] | INTEGER[(precision)] [UNSIGNED] [ZEROFILL] | BIGINT[(precision)] [UNSIGNED] [ZEROFILL] | FLOAT[(precision, scale)] [UNSIGNED] [ZEROFILL] | DOUBLE[(precision, scale)] [UNSIGNED] [ZEROFILL] | DECIMAL[(precision [, scale])] [UNSIGNED] [ZEROFILL] | NUMERIC[(precision [, scale])] [UNSIGNED] [ZEROFILL] | DATETIME[(scale)] | TIMESTAMP[(scale)] | DATE | TIME[(scale)] | YEAR | VARCHAR(length) column_charset column_collate | VARBINARY(length) | CHAR[(length)] column_charset column_collate | BINARY[(length)] | TINYTEXT column_charset column_collate | TINYLOB | TEXT[(length)] column_charset column_collate | BLOB[(length)] | MEDIUMTEXT column_charset column_collate | MEDIUMBLOB | LONGTEXT column_charset column_collate | LONGBLOB precision | scale | length: INT_VALUE ~~~ ## SQL属性 * 对象名 ~~~ tenant_name | pool_name | unit_name | zone_name | region_name: STR_VALUE database_name | table_name | table_alias_name | column_name| column_alias_name | partition_name | subpartition_name: STR_VALUE index_name | view_name | object_name | constraint_name | tablegroup_name: STR_VALUE outline_name | user_name: STR_VALUE table_factor: [[database_name].] table_name column_factor: [table_factor.] column_name ~~~ * 表达式 ~~~ expression: const_value | column_factor | operator_expression | function_expression ~~~ * 注释 ~~~ comment: COMMENT 'comment_text' comment_text: STR_VALUE ~~~ ## 分布式属性 * `PRIMARY_ZONE`:指定数据的主副本分布策略。 ~~~ primary_zone: PRIMARY_ZONE [=] zone_name ~~~ * `ZONE_LIST`:指定租户的资源分布策略。 ~~~ zone_list: ZONE_LIST [=] (zone_name [, zone_name ...]) ~~~ * `REPLICA_NUM`:指定数据的副本份数。 ~~~ replica_num: REPLICA_NUM [=] INT_VALUE ~~~ * `TABLEGROUP`:指定多份数据的主副本分布策略。 ~~~ tablegroup: default_tablegroup | table_tablegroup default_tablegroup: DEFAULT TABLEGROUP [=] {tablegroup_name | NULL} table_tablegroup: TABLEGROUP [=] {tablegroup_name | NULL} ~~~ ## 存储属性 * `BLOCK_SIZE`:指定对象存储的微块长度。 ~~~ block_size: BLOCK_SIZE [=] INT_VALUE ~~~ * `COMPRESSION`:指定对象存储的压缩算法。 ~~~ compression: COMPRESSION [=] {NONE | LZ4_1.0 | LZ0_1.0 | SNAPPY_1.0 | ZLIB_1.0} ~~~ * `PCTFREE`:指定对象存储的宏块预留百分比。 ~~~ pctfree: PCTFREE [=] INT_VALUE ~~~ * `TABLET_SIZE`:指定并行合并时单个任务的最小分片。 ~~~ tablet_size: TABLET_SIZE [=] INT_VALUE ~~~