KassieZ commented on code in PR #2269:
URL: https://github.com/apache/doris-website/pull/2269#discussion_r2034817335


##########
docs/sql-manual/basic-element/object-identifiers.md:
##########


Review Comment:
   done



##########
i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/table-and-view/table/CREATE-TABLE.md:
##########
@@ -30,824 +30,731 @@ under the License.
 
 ## 描述
 
-该命令用于创建一张表。
+在当前或指定的数据库中创建一个新表。一个表可以有多个列,每个列的定义包括名称、数据类型,以及可选的以下属性:
 
-```sql
-CREATE TABLE [IF NOT EXISTS] [database.]table
-(
-    column_definition_list
-    [, index_definition_list]
-)
-[engine_type]
-[keys_type]
-[table_comment]
-[partition_info]
-distribution_desc
-[rollup_list]
-[properties]
-[extra_properties]
-```
-
-#### column_definition_list
-
-列定义列表:
-
-`column_definition[, column_definition]`
-* `column_definition`
-    列定义:
-
-    `column_name column_type [KEY] [aggr_type] [NULL] 
[AUTO_INCREMENT(auto_inc_start_value)] [default_value] [on update 
current_timestamp] [column_comment]`
-    * `column_type`
-        列类型,支持以下类型:
-        ```
-        TINYINT(1 字节)
-            范围:-2^7 + 1 ~ 2^7 - 1
-        SMALLINT(2 字节)
-            范围:-2^15 + 1 ~ 2^15 - 1
-        INT(4 字节)
-            范围:-2^31 + 1 ~ 2^31 - 1
-        BIGINT(8 字节)
-            范围:-2^63 + 1 ~ 2^63 - 1
-        LARGEINT(16 字节)
-            范围:-2^127 + 1 ~ 2^127 - 1
-        FLOAT(4 字节)
-            支持科学计数法
-        DOUBLE(12 字节)
-            支持科学计数法
-        DECIMAL[(precision, scale)] (16 字节)
-            保证精度的小数类型。默认是 DECIMAL(9, 0)
-            precision: 1 ~ 27
-            scale: 0 ~ 9
-            其中整数部分为 1 ~ 18
-            不支持科学计数法
-        DATE(3 字节)
-            范围:0000-01-01 ~ 9999-12-31
-        DATETIME(8 字节)
-            范围:0000-01-01 00:00:00 ~ 9999-12-31 23:59:59
-        CHAR[(length)]
-            定长字符串。长度范围:1 ~ 255。默认为 1
-        VARCHAR[(length)]
-            变长字符串。长度范围:1 ~ 65533。默认为 65533
-        HLL (1~16385 个字节)
-            HyperLogLog 列类型,不需要指定长度和默认值。长度根据数据的聚合程度系统内控制。
-            必须配合 HLL_UNION 聚合类型使用。
-        BITMAP
-            bitmap 列类型,不需要指定长度和默认值。表示整型的集合,元素最大支持到 2^64 - 1。
-            必须配合 BITMAP_UNION 聚合类型使用。
-        ```
-    * `aggr_type`
-    聚合类型,支持以下聚合类型:
-        ```    
-        SUM:求和。适用数值类型。
-        MIN:求最小值。适合数值类型。
-        MAX:求最大值。适合数值类型。
-        REPLACE:替换。对于维度列相同的行,指标列会按照导入的先后顺序,后导入的替换先导入的。
-        REPLACE_IF_NOT_NULL:非空值替换。和 REPLACE 的区别在于对于 null 值,不做替换。这里要注意的是字段默认值要给 
NULL,而不能是空字符串,如果是空字符串,会给你替换成空字符串。
-        HLL_UNION:HLL 类型的列的聚合方式,通过 HyperLogLog 算法聚合。
-        BITMAP_UNION:BIMTAP 类型的列的聚合方式,进行位图的并集聚合。
-        ```
-
-  * `default_value`
-        列默认值,当导入数据未指定该列的值时,系统将赋予该列 `default_value`。
-          
-        语法为`default default_value`。
-          
-        当前 `default_value` 支持两种形式:
-        1. 用户指定固定值,如:
-        ```sql
-            k1 INT DEFAULT '1',
-            k2 CHAR(10) DEFAULT 'aaaa'
-        ```
-        2. 系统提供的关键字,目前支持以下关键字:
-          
-        ```sql
-            // 只用于 DATETIME 类型,导入数据缺失该值时系统将赋予当前时间
-            dt DATETIME DEFAULT CURRENT_TIMESTAMP
-            // 只用于 DATE 类型,导入数据缺失该值时系统将赋予当前日期
-            dt DATE DEFAULT CURRENT_DATE
-        ```
-  * `on update current_timestamp`
-
-        是否在该行有列更新时将该列的值更新为当前时间 (`current_timestamp`)。该特性只能在开启了 Merge-on-Write 
的 Unique 表上使用,开启了这个特性的列必须声明默认值,且默认值必须为 
`current_timestamp`。如果此处声明了时间戳的精度,则该列默认值中的时间戳精度必须与该处的时间戳精度相同。
-
-      
-  示例:
-      
-  ```text
-  k1 TINYINT,
-  k2 DECIMAL(10,2) DEFAULT "10.5",
-  k4 BIGINT NULL DEFAULT "1000" COMMENT "This is column k4",
-  v1 VARCHAR(10) REPLACE NOT NULL,
-  v2 BITMAP BITMAP_UNION,
-  v3 HLL HLL_UNION,
-  v4 INT SUM NOT NULL DEFAULT "1" COMMENT "This is column v4"
-  dt datetime(6) default current_timestamp(6) on update current_timestamp(6)
-  ```
-    
-#### index_definition_list
+- 是否是 key
+- 是否有聚合语义
+- 是否是生成列
+- 是否要求值(NOT NULL)
+- 是否是自增列
+- 是否有插入时的默认值
+- 是否有更新时的默认值
 
-索引列表定义:
+此外,此命令还支持以下变体:
 
-`index_definition[, index_definition]`
-
-* `index_definition`
-
-    索引定义:
-
-    ```sql
-    INDEX index_name (col_name) [USING INVERTED] COMMENT 'xxxxxx'
-    ```
-
-    示例:
-    
-    ```sql
-    INDEX idx1 (k1) USING INVERTED COMMENT "This is a inverted index1",
-    INDEX idx2 (k2) USING INVERTED COMMENT "This is a inverted index2",
-    ...
-    ```
+- CREATE TABLE … AS SELECT(创建一个已填充数据的表;也称为 CTAS)
+- CREATE TABLE … LIKE(创建一个现有表的空副本)
 
-#### engine_type
+## 语法
 
-表引擎类型。本文档中类型皆为 OLAP。示例:
-    
-    `ENGINE=olap`
-    
-#### keys_type
-
-数据模型。
-
-`key_type(col1, col2, ...)`
-
-`key_type` 支持以下模型:
-
-* DUPLICATE KEY(默认):其后指定的列为排序列。
-* AGGREGATE KEY:其后指定的列为维度列。
-* UNIQUE KEY:其后指定的列为主键列。
-
-注:当表属性`enable_duplicate_without_keys_by_default = true`时,默认创建没有排序列的 Duplicate 
表。
-
-示例:
-
-```
-DUPLICATE KEY(col1, col2),
-AGGREGATE KEY(k1, k2, k3),
-UNIQUE KEY(k1, k2)
+```sql
+CREATE [ EXTERNAL ] TABLE [ IF NOT EXISTS ] <table_name>
+    (<columns_definition> [ <indexes_definition> ])
+    [ ENGINE = <table_engine_type> ]
+    [ <key_type> KEY (<key_cols>)
+        [ CLUSTER BY (<cluster_cols>) ]
+    ]
+    [ COMMENT '<table_comment>' ]
+    [ <partitions_definition> ]
+    [ DISTRIBUTED BY { HASH (<distribute_cols>) | RANDOM }
+        [ BUCKETS { <bucket_count> | AUTO } ]
+    ]
+    [ <roll_up_definition> ]
+    [ PROPERTIES (
+          -- Table property
+          <table_property>
+          -- Additional table properties
+          [ , ... ]) 
+    ]
 ```
-    
-#### table_comment
-
-表注释。示例:
-    
-    ```
-    COMMENT "This is my first DORIS table"
-    ```
 
-#### partition_info
+其中:
 
-分区信息,支持三种写法:
-
-1. LESS THAN:仅定义分区上界。下界由上一个分区的上界决定。
-
-    ```
-    PARTITION BY RANGE(col1[, col2, ...])
-    (
-        PARTITION partition_name1 VALUES LESS THAN MAXVALUE|("value1", 
"value2", ...),
-        PARTITION partition_name2 VALUES LESS THAN MAXVALUE|("value1", 
"value2", ...)
-    )
-    ```
-
-2. FIXED RANGE:定义分区的左闭右开区间。
-
-    ```
-    PARTITION BY RANGE(col1[, col2, ...])
-    (
-        PARTITION partition_name1 VALUES [("k1-lower1", "k2-lower1", 
"k3-lower1",...), ("k1-upper1", "k2-upper1", "k3-upper1", ...)),
-        PARTITION partition_name2 VALUES [("k1-lower1-2", "k2-lower1-2", ...), 
("k1-upper1-2", MAXVALUE, ))
-    )
-    ```
-
-3. MULTI RANGE:批量创建 RANGE 分区,定义分区的左闭右开区间,设定时间单位和步长,时间单位支持年、月、日、周和小时。
-
-    ```
-    PARTITION BY RANGE(col)
-    (
-       FROM ("2000-11-14") TO ("2021-11-14") INTERVAL 1 YEAR,
-       FROM ("2021-11-14") TO ("2022-11-14") INTERVAL 1 MONTH,
-       FROM ("2022-11-14") TO ("2023-01-03") INTERVAL 1 WEEK,
-       FROM ("2023-01-03") TO ("2023-01-14") INTERVAL 1 DAY
-    )
-    ```
-:::tip 提示
-该功能自 Apache Doris  1.2 版本起支持
-:::
+```sql
+columns_definition
+  : -- Column definition
+    <col_name> <col_type>
+      [ KEY ]
+      [ <col_aggregate_type> ]
+      [ [ GENERATED ALWAYS ] AS (<col_generate_expression>) ]

Review Comment:
   done



##########
i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/table-and-view/table/CREATE-TABLE.md:
##########
@@ -30,824 +30,731 @@ under the License.
 
 ## 描述
 
-该命令用于创建一张表。
+在当前或指定的数据库中创建一个新表。一个表可以有多个列,每个列的定义包括名称、数据类型,以及可选的以下属性:
 
-```sql
-CREATE TABLE [IF NOT EXISTS] [database.]table
-(
-    column_definition_list
-    [, index_definition_list]
-)
-[engine_type]
-[keys_type]
-[table_comment]
-[partition_info]
-distribution_desc
-[rollup_list]
-[properties]
-[extra_properties]
-```
-
-#### column_definition_list
-
-列定义列表:
-
-`column_definition[, column_definition]`
-* `column_definition`
-    列定义:
-
-    `column_name column_type [KEY] [aggr_type] [NULL] 
[AUTO_INCREMENT(auto_inc_start_value)] [default_value] [on update 
current_timestamp] [column_comment]`
-    * `column_type`
-        列类型,支持以下类型:
-        ```
-        TINYINT(1 字节)
-            范围:-2^7 + 1 ~ 2^7 - 1
-        SMALLINT(2 字节)
-            范围:-2^15 + 1 ~ 2^15 - 1
-        INT(4 字节)
-            范围:-2^31 + 1 ~ 2^31 - 1
-        BIGINT(8 字节)
-            范围:-2^63 + 1 ~ 2^63 - 1
-        LARGEINT(16 字节)
-            范围:-2^127 + 1 ~ 2^127 - 1
-        FLOAT(4 字节)
-            支持科学计数法
-        DOUBLE(12 字节)
-            支持科学计数法
-        DECIMAL[(precision, scale)] (16 字节)
-            保证精度的小数类型。默认是 DECIMAL(9, 0)
-            precision: 1 ~ 27
-            scale: 0 ~ 9
-            其中整数部分为 1 ~ 18
-            不支持科学计数法
-        DATE(3 字节)
-            范围:0000-01-01 ~ 9999-12-31
-        DATETIME(8 字节)
-            范围:0000-01-01 00:00:00 ~ 9999-12-31 23:59:59
-        CHAR[(length)]
-            定长字符串。长度范围:1 ~ 255。默认为 1
-        VARCHAR[(length)]
-            变长字符串。长度范围:1 ~ 65533。默认为 65533
-        HLL (1~16385 个字节)
-            HyperLogLog 列类型,不需要指定长度和默认值。长度根据数据的聚合程度系统内控制。
-            必须配合 HLL_UNION 聚合类型使用。
-        BITMAP
-            bitmap 列类型,不需要指定长度和默认值。表示整型的集合,元素最大支持到 2^64 - 1。
-            必须配合 BITMAP_UNION 聚合类型使用。
-        ```
-    * `aggr_type`
-    聚合类型,支持以下聚合类型:
-        ```    
-        SUM:求和。适用数值类型。
-        MIN:求最小值。适合数值类型。
-        MAX:求最大值。适合数值类型。
-        REPLACE:替换。对于维度列相同的行,指标列会按照导入的先后顺序,后导入的替换先导入的。
-        REPLACE_IF_NOT_NULL:非空值替换。和 REPLACE 的区别在于对于 null 值,不做替换。这里要注意的是字段默认值要给 
NULL,而不能是空字符串,如果是空字符串,会给你替换成空字符串。
-        HLL_UNION:HLL 类型的列的聚合方式,通过 HyperLogLog 算法聚合。
-        BITMAP_UNION:BIMTAP 类型的列的聚合方式,进行位图的并集聚合。
-        ```
-
-  * `default_value`
-        列默认值,当导入数据未指定该列的值时,系统将赋予该列 `default_value`。
-          
-        语法为`default default_value`。
-          
-        当前 `default_value` 支持两种形式:
-        1. 用户指定固定值,如:
-        ```sql
-            k1 INT DEFAULT '1',
-            k2 CHAR(10) DEFAULT 'aaaa'
-        ```
-        2. 系统提供的关键字,目前支持以下关键字:
-          
-        ```sql
-            // 只用于 DATETIME 类型,导入数据缺失该值时系统将赋予当前时间
-            dt DATETIME DEFAULT CURRENT_TIMESTAMP
-            // 只用于 DATE 类型,导入数据缺失该值时系统将赋予当前日期
-            dt DATE DEFAULT CURRENT_DATE
-        ```
-  * `on update current_timestamp`
-
-        是否在该行有列更新时将该列的值更新为当前时间 (`current_timestamp`)。该特性只能在开启了 Merge-on-Write 
的 Unique 表上使用,开启了这个特性的列必须声明默认值,且默认值必须为 
`current_timestamp`。如果此处声明了时间戳的精度,则该列默认值中的时间戳精度必须与该处的时间戳精度相同。
-
-      
-  示例:
-      
-  ```text
-  k1 TINYINT,
-  k2 DECIMAL(10,2) DEFAULT "10.5",
-  k4 BIGINT NULL DEFAULT "1000" COMMENT "This is column k4",
-  v1 VARCHAR(10) REPLACE NOT NULL,
-  v2 BITMAP BITMAP_UNION,
-  v3 HLL HLL_UNION,
-  v4 INT SUM NOT NULL DEFAULT "1" COMMENT "This is column v4"
-  dt datetime(6) default current_timestamp(6) on update current_timestamp(6)
-  ```
-    
-#### index_definition_list
+- 是否是 key
+- 是否有聚合语义
+- 是否是生成列
+- 是否要求值(NOT NULL)
+- 是否是自增列
+- 是否有插入时的默认值
+- 是否有更新时的默认值
 
-索引列表定义:
+此外,此命令还支持以下变体:
 
-`index_definition[, index_definition]`
-
-* `index_definition`
-
-    索引定义:
-
-    ```sql
-    INDEX index_name (col_name) [USING INVERTED] COMMENT 'xxxxxx'
-    ```
-
-    示例:
-    
-    ```sql
-    INDEX idx1 (k1) USING INVERTED COMMENT "This is a inverted index1",
-    INDEX idx2 (k2) USING INVERTED COMMENT "This is a inverted index2",
-    ...
-    ```
+- CREATE TABLE … AS SELECT(创建一个已填充数据的表;也称为 CTAS)
+- CREATE TABLE … LIKE(创建一个现有表的空副本)
 
-#### engine_type
+## 语法
 
-表引擎类型。本文档中类型皆为 OLAP。示例:
-    
-    `ENGINE=olap`
-    
-#### keys_type
-
-数据模型。
-
-`key_type(col1, col2, ...)`
-
-`key_type` 支持以下模型:
-
-* DUPLICATE KEY(默认):其后指定的列为排序列。
-* AGGREGATE KEY:其后指定的列为维度列。
-* UNIQUE KEY:其后指定的列为主键列。
-
-注:当表属性`enable_duplicate_without_keys_by_default = true`时,默认创建没有排序列的 Duplicate 
表。
-
-示例:
-
-```
-DUPLICATE KEY(col1, col2),
-AGGREGATE KEY(k1, k2, k3),
-UNIQUE KEY(k1, k2)
+```sql
+CREATE [ EXTERNAL ] TABLE [ IF NOT EXISTS ] <table_name>
+    (<columns_definition> [ <indexes_definition> ])
+    [ ENGINE = <table_engine_type> ]
+    [ <key_type> KEY (<key_cols>)
+        [ CLUSTER BY (<cluster_cols>) ]
+    ]
+    [ COMMENT '<table_comment>' ]
+    [ <partitions_definition> ]
+    [ DISTRIBUTED BY { HASH (<distribute_cols>) | RANDOM }
+        [ BUCKETS { <bucket_count> | AUTO } ]
+    ]
+    [ <roll_up_definition> ]
+    [ PROPERTIES (
+          -- Table property
+          <table_property>
+          -- Additional table properties
+          [ , ... ]) 
+    ]
 ```
-    
-#### table_comment
-
-表注释。示例:
-    
-    ```
-    COMMENT "This is my first DORIS table"
-    ```
 
-#### partition_info
+其中:
 
-分区信息,支持三种写法:
-
-1. LESS THAN:仅定义分区上界。下界由上一个分区的上界决定。
-
-    ```
-    PARTITION BY RANGE(col1[, col2, ...])
-    (
-        PARTITION partition_name1 VALUES LESS THAN MAXVALUE|("value1", 
"value2", ...),
-        PARTITION partition_name2 VALUES LESS THAN MAXVALUE|("value1", 
"value2", ...)
-    )
-    ```
-
-2. FIXED RANGE:定义分区的左闭右开区间。
-
-    ```
-    PARTITION BY RANGE(col1[, col2, ...])
-    (
-        PARTITION partition_name1 VALUES [("k1-lower1", "k2-lower1", 
"k3-lower1",...), ("k1-upper1", "k2-upper1", "k3-upper1", ...)),
-        PARTITION partition_name2 VALUES [("k1-lower1-2", "k2-lower1-2", ...), 
("k1-upper1-2", MAXVALUE, ))
-    )
-    ```
-
-3. MULTI RANGE:批量创建 RANGE 分区,定义分区的左闭右开区间,设定时间单位和步长,时间单位支持年、月、日、周和小时。
-
-    ```
-    PARTITION BY RANGE(col)
-    (
-       FROM ("2000-11-14") TO ("2021-11-14") INTERVAL 1 YEAR,
-       FROM ("2021-11-14") TO ("2022-11-14") INTERVAL 1 MONTH,
-       FROM ("2022-11-14") TO ("2023-01-03") INTERVAL 1 WEEK,
-       FROM ("2023-01-03") TO ("2023-01-14") INTERVAL 1 DAY
-    )
-    ```
-:::tip 提示
-该功能自 Apache Doris  1.2 版本起支持
-:::
+```sql
+columns_definition
+  : -- Column definition

Review Comment:
   done



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to