推荐答案
在 Presto 中,CREATE TABLE
语句用于创建一个新表。以下是使用 CREATE TABLE
语句的基本语法:
CREATE TABLE [IF NOT EXISTS] table_name ( column_name data_type [COMMENT 'column_comment'], ... ) [COMMENT 'table_comment'] [WITH (property_name = property_value, ...)]
示例
CREATE TABLE IF NOT EXISTS my_table ( id BIGINT, name VARCHAR, age INT COMMENT 'Age of the person', created_at TIMESTAMP ) COMMENT 'This is a sample table' WITH (format = 'ORC', partitioned_by = ARRAY['created_at']);
本题详细解读
1. CREATE TABLE
语句的基本结构
CREATE TABLE
: 这是创建表的关键字。IF NOT EXISTS
: 这是一个可选的关键字,用于在表已经存在时避免重复创建。table_name
: 这是要创建的表的名称。column_name
: 这是表中列的名称。data_type
: 这是列的数据类型,例如BIGINT
、VARCHAR
、INT
、TIMESTAMP
等。COMMENT
: 这是一个可选的注释,用于描述列或表。
2. WITH
子句
WITH
子句用于指定表的存储格式和其他属性。常见的属性包括:
format
: 指定表的存储格式,例如ORC
、PARQUET
、TEXTFILE
等。partitioned_by
: 指定表的分区列,通常是一个数组,例如ARRAY['created_at']
。
3. 示例解析
在示例中,我们创建了一个名为 my_table
的表,包含以下列:
id
: 数据类型为BIGINT
。name
: 数据类型为VARCHAR
。age
: 数据类型为INT
,并附带了一个注释'Age of the person'
。created_at
: 数据类型为TIMESTAMP
。
表本身也有一个注释 'This is a sample table'
,并且使用了 ORC
格式存储,按 created_at
列进行分区。
4. 注意事项
- 在 Presto 中,
CREATE TABLE
语句通常用于创建外部表,即表的数据存储在外部存储系统(如 HDFS、S3)中。 - Presto 本身不管理数据存储,因此
CREATE TABLE
语句通常与外部存储系统(如 Hive)结合使用。 - 如果表已经存在且使用了
IF NOT EXISTS
子句,Presto 不会抛出错误,而是静默跳过创建操作。