Skip to content

语法参考

本章节介绍多个SQL函数(DDL分布区等)共有的语法元素。

1.列定义或列表

column_namedata_type(column_namedata_type,)

关键字和参数:

引用方:

2.列名或列表

column_name(column_name,)

关键字和参数:

  • column_name:列名。

引用方:

3.有序列列表

(column_nameASCDESC,)

关键字和参数:

  • column_name:列名。

引用方:

4.约束

CONSTRAINTconstraint_namePRIMARY KEYUSINGSORTEDsorted_column_listHASHcolumn_list

关键字和参数:

  • constraint_name:约束名。

引用方:

5.限定表名

schema.table_name

关键字和参数:

  • schema:模式名;
  • table_name:表名。

引用方:

6.列定义

column_nameDATA TYPENOTNULL
DEFAULTidentifierliteral_valueCURRENT TIMESTAMP+INTERVALintervalPRIMARY KEY

关键字和参数:

  • column_name:列名;
  • DATA TYPE:有效的数据类型
  • identifier:行的随机标识符。可以使用rand_uuid函数生成;
  • literal_value:默认值;
  • CURRENT TIMESTAMP:返回当前时间的函数,只能用于TIMESTAMP列;
  • interval:时间戳应该偏移的时间间隔。

引用方:

7.参数

parameter_name=parameter_value

参数:

  • parameter_name:参数名;
  • parameter_value:参数值。

指定参数后,可以将其作为文本值或标识符,例如:

sql
CREATE ZONE test_zone;
CREATE TABLE test_table (id INT PRIMARY KEY, val INT) WITH PRIMARY_ZONE=test_zone;

在上例中,test_zone是标识符,以这种方式使用时,参数不区分大小写。

sql
CREATE ZONE "test_zone";
CREATE TABLE test_table (id INT PRIMARY KEY, val INT) WITH PRIMARY_ZONE='test_zone';

在上例中,test_zone将创建为文本值,当以这种方式使用时,参数区分大小写。

sql
CREATE ZONE test_zone;
CREATE TABLE test_table (id INT PRIMARY KEY, val INT) WITH PRIMARY_ZONE=`TEST_ZONE`;

在上例中,test_zone将创建为标识符,并且不区分大小写。因此当TEST_ZONE用作文本时,它仍然能匹配。

引用方:

8.系统函数

8.1.rand_uuid

此函数每次调用时都会生成一个随机UUID值。

示例:

sql
CREATE TABLE t (id uuid default rand_uuid primary key, val int)

引用方:

18624049226