SHOW

最近更新时间:2026-05-20 14:11:22

我的收藏

语法总览

Spark 的 SHOW 命令是一组元数据只读查询,用于查看数据库、表、视图、分区、函数等对象的定义信息。核心命令如下:
序号
命令
功能
1
SHOW DATABASES
列出服务器上的数据库
2
SHOW TABLES
列出库中的表
3
SHOW VIEWS
列出库中的视图
4
SHOW COLUMNS
列出表的所有列
5
SHOW CREATE TABLE
返回建表/建视图 DDL
6
SHOW PARTITIONS
列出表的所有分区
7
SHOW FUNCTIONS
列出所有函数
8
SHOW TBLPROPERTIES
返回表的属性
9
SHOW TABLE EXTENDED
显示匹配正则的表信息

核心命令详情

1. SHOW DATABASES / SHOW SCHEMAS

功能描述

列出服务器上的数据库。支持可选的 LIKE 过滤。

语法

SHOW { DATABASES | SCHEMAS } [ [ LIKE ] pattern ];

参数说明

参数
说明
DATABASES / SCHEMAS
二者等价,SCHEMAS 是 SQL 标准写法
[ LIKE pattern ]
可选,按模式过滤数据库名

示例

SHOW DATABASES;
SHOW SCHEMAS;

2. SHOW TABLES

功能描述

列出当前数据库或指定数据库中的所有表。

语法

SHOW TABLES [ { IN | FROM } database_name ] [ [ LIKE ] pattern ];

参数说明

参数
说明
IN / FROM database_name
指定数据库,省略则使用当前数据库
[ LIKE pattern ]
可选,按模式过滤表名

示例

SHOW TABLES;
SHOW TABLES IN default;

3. SHOW VIEWS

功能描述

列出当前数据库或指定数据库中的所有视图。

语法

SHOW VIEWS { IN | FROM } database_name [ [ LIKE ] pattern ];

参数说明

参数
说明
IN / FROM database_name
指定数据库,省略则使用当前数据库
[ LIKE pattern ]
可选,按模式过滤视图名

示例

-- 创建基础表和视图
CREATE EXTERNAL TABLE sv_base_table (id INT, name STRING)
USING PARQUET LOCATION 'cosn://<your_bucket_name>/test_show_views/sv_base_table';
INSERT INTO sv_base_table VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie');

CREATE VIEW sv_test_view AS SELECT * FROM sv_base_table WHERE id > 0;
CREATE VIEW sv_extra_view AS SELECT name FROM sv_base_table WHERE id <= 2;

SHOW VIEWS IN default;
SHOW VIEWS IN default LIKE 'sv_test*';
SELECT * FROM sv_test_view ORDER BY id;

4. SHOW COLUMNS

功能描述

列出表中的所有列。

语法

SHOW COLUMNS { IN | FROM } table_name [ { IN | FROM } database_name ];

参数说明

参数
说明
table_name
目标表名
database_name
可选,限定库名

示例

CREATE EXTERNAL TABLE show_col_t1 (
id INT, name STRING, score DOUBLE,
is_active BOOLEAN, created_at TIMESTAMP
) USING PARQUET
LOCATION 'cosn://<your_bucket_name>/test_show_columns/show_col_t1';

INSERT INTO show_col_t1 VALUES (1, 'Alice', 95.5, true, current_timestamp());

SHOW COLUMNS IN show_col_t1;
SHOW COLUMNS FROM show_col_t1;
SHOW COLUMNS IN default.show_col_t1;

5. SHOW CREATE TABLE

功能描述

返回创建给定表的 CREATE TABLE 语句或 CREATE VIEW 语句。

语法

SHOW CREATE TABLE table_identifier;

参数说明

参数
说明
table_identifier
表或视图名称,可加库名限定:[ database_name. ] table_or_view_name

示例

CREATE EXTERNAL TABLE sct_t1 (id INT, name STRING)
USING PARQUET LOCATION 'cosn:///<your_bucket_name>/test_show_create_table/sct_t1';
INSERT INTO sct_t1 VALUES (1, 'Alice'), (2, 'Bob');

SHOW CREATE TABLE sct_t1; -- 返回表的 DDL

CREATE VIEW sct_v1 AS SELECT * FROM sct_t1;
SHOW CREATE TABLE sct_v1; -- 返回 VIEW 的 DDL

6. SHOW PARTITIONS

功能描述

列出表的所有分区。支持按部分分区键过滤。

语法

SHOW PARTITIONS table_identifier [ partition_spec ];

partition_spec:
PARTITION ( partition_col_name = partition_col_val [ , ... ] )

参数说明

参数
说明
table_identifier
目标分区表名称
partition_spec
可选,指定部分分区键进行过滤

示例

-- 使用管理表创建二级分区表
CREATE EXTERNAL TABLE sp_t1 (
id INT, name STRING
) PARTITIONED BY (dept STRING, year INT)
STORED AS PARQUET
LOCATION 'cosn:///<your_bucket_name>/test_show_partitions/sct_t1';

INSERT INTO sp_t1 PARTITION(dept='eng',year=2024) VALUES (1,'Alice');
INSERT INTO sp_t1 PARTITION(dept='sales',year=2024) VALUES (2,'Bob');
INSERT INTO sp_t1 PARTITION(dept='eng',year=2025) VALUES (3,'Charlie');

SHOW PARTITIONS sp_t1; -- 显示全部分区
SHOW PARTITIONS sp_t1 PARTITION(dept='eng'); -- 按部分分区键过滤

7. SHOW FUNCTIONS

功能描述

列出所有函数,包括临时函数和内置函数。支持 LIKE 过滤。

语法

SHOW FUNCTIONS [ [ LIKE ] pattern ];

参数说明

参数
说明
[ LIKE pattern ]
可选,按模式过滤函数名

示例

SHOW FUNCTIONS;
SHOW FUNCTIONS LIKE 'abs';
SHOW SYSTEM FUNCTIONS LIKE 'sum';

8. SHOW TBLPROPERTIES

功能描述

返回表的属性(TBLPROPERTIES),支持查询全部属性或指定单个属性值。

语法

SHOW TBLPROPERTIES table_identifier [ ( property_key ) ];

参数说明

参数
说明
table_identifier
目标表名称
property_key
可选,查询指定的单个属性键

示例

CREATE EXTERNAL TABLE stp_t1 (id INT, name STRING)
USING PARQUET
TBLPROPERTIES ('custom_key1' = 'custom_value1', 'custom_key2' = 'custom_value2')
LOCATION 'cosn://<your_bucket_name>/test_show_tblproperties/stp_t1';

SHOW TBLPROPERTIES stp_t1; -- 全部属性
SHOW TBLPROPERTIES stp_t1 ('custom_key1'); -- 指定自定义属性
SHOW TBLPROPERTIES stp_t1 ('transient_lastDdlTime'); -- 系统内置属性

9. SHOW TABLE EXTENDED

功能描述

显示匹配给定正则表达式的所有表的详细信息(包含 Schema、Location、Properties 等)。

语法

SHOW TABLE EXTENDED [ { IN | FROM } database_name ] LIKE 'pattern';

参数说明

参数
说明
IN / FROM database_name
可选,限定数据库
'pattern'
正则表达式或通配符模式,用于匹配表名

示例

CREATE EXTERNAL TABLE ste_test_tbl (
id INT, name STRING, score DOUBLE
) USING PARQUET
LOCATION 'cosn://<your_bucket_name>/test_show_table_extended/ste_test_tbl'
TBLPROPERTIES ('testPurpose' = 'showTableExtended');

INSERT INTO ste_test_tbl VALUES (1, 'Alice', 95.5), (2, 'Bob', 88.0);

SHOW TABLE EXTENDED LIKE 'ste_*'; -- 通配符匹配
SHOW TABLE EXTENDED IN default LIKE 'ste_test_tbl'; -- 指定库 + 精确匹配