查看建表语句
功能描述
返回对应表的建表语句(CREATE TABLE statement)。SHOW CREATE TABLE用于查看表的完整定义语句。
- 默认返回DataSource格式的建表语句。
- 使用AS SERDE子句可返回Hive格式的建表语句,适用于Hive SerDe表。
语法格式
SHOW CREATE TABLE [ db_name. ] table_name [ AS SERDE ]
参数说明
| 参数 | 是否必选 | 描述 |
|---|---|---|
| db_name | 否 | 数据库名称。若未指定,则默认使用当前数据库。 |
| table_name | 是 | 表名称。所涉及的表必须存在,否则会出错。 |
| AS SERDE | 否 | 用于生成Hive SerDe格式的建表语句,适用于使用Hive存储格式的表。若未指定,则默认生成DataSource格式的建表语句。 |
注意事项
- 所涉及的表必须存在,否则会出错。
- 不使用AS SERDE时,返回DataSource格式的建表语句(推荐)。
- 使用AS SERDE时,返回Hive SerDe格式的建表语句,包含ROW FORMAT SERDE、INPUTFORMAT、OUTPUTFORMAT等Hive特有属性。
示例1:基本查看建表语句
查看employee表的建表语句。
SHOW CREATE TABLE employee;
返回结果示例(DataSource 格式):
+--------------------+ |createtab_stmt | +--------------------+ |CREATE TABLE employee ( id INT, name STRING, salary DOUBLE) USING parquet TBLPROPERTIES ( 'transient_lastDdlTime' = '1718534400') +--------------------+
示例2:查看 DataSource 表的建表语句
创建一个 DataSource 格式的表并查看其建表语句:
-- 创建 DataSource 格式的表 CREATE TABLE sales (order_id INT, amount DOUBLE, order_date DATE) USING parquet LOCATION 'obs://my-bucket/warehouse/sales'; -- 查看建表语句 SHOW CREATE TABLE sales;
示例3:查看 Hive 格式表的建表语句(AS SERDE)
使用 AS SERDE 查看 Hive 格式的建表语句:
-- 创建 Hive 格式的表 CREATE TABLE logs (id INT, message STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' STORED AS TEXTFILE; -- 以 Hive SerDe 格式查看建表语句 SHOW CREATE TABLE logs AS SERDE;
返回结果示例(Hive SerDe 格式):
+--------------------+ |createtab_stmt | +--------------------+ |CREATE TABLE logs ( id INT, message STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' TBLPROPERTIES ( 'serialization.format' = '1', 'transient_lastDdlTime' = '1718534400') +--------------------+
示例4:查看指定数据库的表建表语句
查看 company_db 数据库下 employee 表的建表语句。
SHOW CREATE TABLE company_db.employee;