更新时间:2026-07-08 GMT+08:00
分享

查看建表语句

功能描述

返回对应表的建表语句(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;

相关文档