
# 查看建表语句
#### 功能描述
返回对应表的建表语句（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;
```
