SQL Syntax - Auxiliary Statements:SQL 语法之辅助语句
持续更新…
sql-ref-syntax-aux-show-columns
SHOW COLUMNS - 查看字段信息
查看指定表的所有字段列表,如果表不存在,则会抛出异常.
使用语法
SHOW COLUMNS table_identifier [ database ]
使用示例
USE salesdb;
CREATE TABLE customer(
cust_cd INT,
name VARCHAR(100),
cust_addr STRING);
SHOW COLUMNS IN customer;
+
| col_name|
+
| cust_cd|
| name|
|cust_addr|
+
SHOW COLUMNS IN salesdb.customer;
+
| col_name|
+
| cust_cd|
| name|
|cust_addr|
+
SHOW COLUMNS IN customer IN salesdb;
+
| col_name|
+
| cust_cd|
| name|
|cust_addr|
+
SHOW CREATE TABLE - 查看建表语句
SHOW CREATE TABLE 返回用于创建给定表或视图的 CREATE TABLE 语句或 CREATE VIEW 语句,在不存在的表或临时视图上 SHOW CREATE TABLE 会引发异常
使用语法
SHOW CREATE TABLE table_identifier [ AS SERDE ]
使用示例
CREATE TABLE test (c INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE
TBLPROPERTIES ('prop1' = 'value1', 'prop2' = 'value2');
SHOW CREATE TABLE test;
SHOW CREATE TABLE test AS SERDE;
SHOW DATABASES - 查看数据库列表
列出与可选提供的正则表达式模式匹配的数据库,如果未提供模式,则该命令列出系统中的所有数据库
注意,SCHEMAS 和 DATABASES 的用法是可以互换的,并且含义相同
使用语法
SHOW { DATABASES | SCHEMAS } [ LIKE regex_pattern ]
使用示例
SHOW DATABASES;
SHOW SCHEMAS;
SHOW DATABASES LIKE 'pay*';
SHOW DATABASES LIKE '*ay*';
SHOW FUNCTIONS - 查看函数列表
应用可选的正则表达式模式后返回函数列表,鉴于 Spark 支持的函数数量非常多,该语句结合 describe function 可以快速找到该函数并了解其用法
注意,LIKE 子句是可选的,仅支持与其他系统兼容
使用语法
SHOW [ function_kind ] FUNCTIONS [ { FROM | IN } database_name ] [ LIKE regex_pattern ]
参数介绍
指定要搜索的函数的名称空间,有效的名称空间有:
1. USER - 在用户定义的函数中查找函数.
2. SYSTEM - 在系统的函数中查找函数.
3. ALL - 在用户系统的函数中查找函数.
指定列出函数的数据库名称
指定用于过滤语句结果的正则表达式模式
1. 支持 * 和 | 字符,同时正则表达式
2. * 单独匹配 0 个或多个字符和 | 用于分隔多个不同的正则表达式,其中任何一个都可以匹配
3. 会将输入的前后空格去除,且匹配时不区分大小写
使用示例
SHOW FUNCTIONS trim;
+
|function|
+
| trim|
+
SHOW SYSTEM FUNCTIONS concat;
+
|function|
+
| concat|
+
SHOW SYSTEM FUNCTIONS FROM salesdb LIKE 'max';
+
|function|
+
| max|
+
SHOW FUNCTIONS LIKE 't*';
SHOW FUNCTIONS LIKE 'yea*|windo*';
SHOW FUNCTIONS LIKE 't[a-z][a-z][a-z]';
+
|function|
+
| tanh|
| trim|
+
SHOW PARTITIONS - 获取分区列表
SHOW PARTITIONS 语句用于列出表的分区,可以指定可选的分区规范以返回与提供的分区规范匹配的分区
使用语法
SHOW PARTITIONS table_identifier [ partition_spec ]
使用示例
CREATE TABLE customer(id INT, name STRING) PARTITIONED BY (state STRING, city STRING);
INSERT INTO customer PARTITION (state = 'CA', city = 'Fremont') VALUES (100, 'John');
INSERT INTO customer PARTITION (state = 'CA', city = 'San Jose') VALUES (200, 'Marry');
INSERT INTO customer PARTITION (state = 'AZ', city = 'Peoria') VALUES (300, 'Daniel');
SHOW PARTITIONS customer;
SHOW PARTITIONS customer PARTITION (state = 'CA', city = 'Fremont');
SHOW PARTITIONS customer PARTITION (state = 'CA');
SHOW PARTITIONS customer PARTITION (city = 'San Jose');
SHOW TABLE EXTENDED - 查看表的详细信息
SHOW TABLE EXTENDED 将显示与给定正则表达式匹配的所有表的信息
输出包括基本表信息和文件系统信息,如上次访问、创建者、类型、提供程序、表属性、位置、Serde 库、InputFormat、OutputFormat、存储属性、分区提供程序、分区列和架构
如果存在分区规范,它会输出给定分区的文件系统特定信息,例如分区参数和分区统计信息。 请注意,表正则表达式不能与分区规范一起使用
使用语法
SHOW TABLE EXTENDED [ { IN | FROM } database_name ] LIKE regex_pattern
[ partition_spec ]
使用示例
SHOW TABLE EXTENDED LIKE 'employee';
SHOW TABLE EXTENDED IN default LIKE 'employee' PARTITION (grade=1);
SHOW TABLES - 查看表列表
SHOW TABLES 语句返回可选指定数据库的所有表。 此外,该语句的输出可以通过可选的匹配模式进行过滤。 如果未指定数据库,则从当前数据库返回表
使用语法
SHOW TABLES [ { FROM | IN } database_name ] [ LIKE regex_pattern ]
使用示例
SHOW TABLES;
+
|database|tableName|isTemporary|
+
| default| sam| false|
| default| sam1| false|
| default| suj| false|
+
SHOW TABLES FROM default LIKE 'sam*';
+
|database|tableName|isTemporary|
+
| default| sam| false|
| default| sam1| false|
+
SHOW TABLES LIKE 'sam*|suj';
+
|database|tableName|isTemporary|
+
| default| sam| false|
| default| sam1| false|
| default| suj| false|
+
SHOW TBLPROPERTIES - 查看表属性
给定属性键的可选值,此语句返回表属性的值。 如果未指定键,则返回所有属性
注意,此语句返回的属性值不包括 spark 和 hive 内部的一些属性。 排除的属性是:
1. 所有以前缀 spark.sql 开头的属性
2. 属性键,例如:EXTERNAL、comment
3. hive 内部生成的所有属性,用于存储统计信息。 其中一些属性是:numFiles、numPartitions、numRows
使用语法
SHOW TBLPROPERTIES table_identifier
[ ( unquoted_property_key | property_key_as_string_literal ) ]
使用示例
SHOW TBLPROPERTIES customer;
+
| key| value|
+
| created.by.user| John|
| created.date|01-01-2001|
|transient_lastDdlTime|1567554931|
+
SHOW TBLPROPERTIES salesdb.customer;
+
| key| value|
+
| created.by.user| John|
| created.date|01-01-2001|
|transient_lastDdlTime|1567554931|
+
SHOW TBLPROPERTIES customer (created.by.user);
+
|value|
+
| John|
+
SHOW TBLPROPERTIES customer ('created.date');
+
| value|
+
|01-01-2001|
+
SHOW VIEWS - 查看视图列表
SHOW VIEWS 语句返回可选指定数据库的所有视图
此外,该语句的输出可以通过可选的匹配模式进行过滤。 如果未指定数据库,则从当前数据库返回视图。 如果指定的数据库是全局临时视图数据库,我们将列出全局临时视图。 请注意,无论给定数据库如何,该命令还列出本地临时视图
使用语法
SHOW VIEWS [ { FROM | IN } database_name ] [ LIKE regex_pattern ]
使用示例
CREATE VIEW sam AS SELECT id, salary FROM employee WHERE name = 'sam';
CREATE VIEW sam1 AS SELECT id, salary FROM employee WHERE name = 'sam1';
CREATE VIEW suj AS SELECT id, salary FROM employee WHERE name = 'suj';
USE userdb;
CREATE VIEW user1 AS SELECT id, salary FROM default.employee WHERE name = 'user1';
CREATE VIEW user2 AS SELECT id, salary FROM default.employee WHERE name = 'user2';
USE default;
CREATE GLOBAL TEMP VIEW temp1 AS SELECT 1 AS col1;
CREATE TEMP VIEW temp2 AS SELECT 1 AS col1;
SHOW VIEWS;
+
| namespace | viewName | isTemporary |
+
| default | sam | false |
| default | sam1 | false |
| default | suj | false |
| | temp2 | true |
+
SHOW VIEWS FROM test;
+
| namespace | viewName | isTemporary |
+
| test | user1 | false |
| test | user2 | false |
| | temp2 | true |
+
SHOW VIEWS LIKE 'sam|suj|temp*';
+
| namespace | viewName | isTemporary |
+
| default | sam | false |
| default | suj | false |
| | temp2 | true |
+
|