SHOW 语句
注意:SHOW CREATE (TABLE|DATABASE|USER)
会隐藏机密信息,除非 display_secrets_in_show_and_select
服务器设置 已启用,format_display_secrets_in_show_and_select
格式设置 已启用,并且用户具有 displaySecretsInShowAndSelect
权限。
SHOW CREATE TABLE | DICTIONARY | VIEW | DATABASE
SHOW [CREATE] [TEMPORARY] TABLE|DICTIONARY|VIEW|DATABASE [db.]table|view [INTO OUTFILE filename] [FORMAT format]
返回一个类型为 String 的单列,其中包含用于创建指定对象的 CREATE 查询。
SHOW TABLE t
和 SHOW DATABASE db
与 SHOW CREATE TABLE|DATABASE t|db
的含义相同,但 SHOW t
和 SHOW db
不受支持。
请注意,如果您使用此语句获取系统表的 CREATE
查询,则会得到一个伪造的查询,该查询仅声明表结构,但不能用于创建表。
SHOW DATABASES
打印所有数据库的列表。
SHOW DATABASES [[NOT] LIKE | ILIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE filename] [FORMAT format]
此语句与以下查询相同
SELECT name FROM system.databases [WHERE name [NOT] LIKE | ILIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE filename] [FORMAT format]
示例
获取数据库名称,其名称中包含符号序列“de”。
SHOW DATABASES LIKE '%de%'
结果
┌─name────┐
│ default │
└─────────┘
不区分大小写地获取数据库名称,其名称中包含符号序列“de”。
SHOW DATABASES ILIKE '%DE%'
结果
┌─name────┐
│ default │
└─────────┘
获取数据库名称,其名称中不包含符号序列“de”。
SHOW DATABASES NOT LIKE '%de%'
结果
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ system │
│ test │
│ tutorial │
└────────────────────────────────┘
从数据库名称中获取前两行。
SHOW DATABASES LIMIT 2
结果
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ default │
└────────────────────────────────┘
另请参阅
SHOW TABLES
显示表列表。
SHOW [FULL] [TEMPORARY] TABLES [{FROM | IN} <db>] [[NOT] LIKE | ILIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]
如果未指定 FROM
子句,则查询将返回当前数据库中的表列表。
此语句与以下查询相同
SELECT name FROM system.tables [WHERE name [NOT] LIKE | ILIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]
示例
获取表名称,其名称中包含符号序列“user”。
SHOW TABLES FROM system LIKE '%user%'
结果
┌─name─────────────┐
│ user_directories │
│ users │
└──────────────────┘
不区分大小写地获取表名称,其名称中包含序列“user”。
SHOW TABLES FROM system ILIKE '%USER%'
结果
┌─name─────────────┐
│ user_directories │
│ users │
└──────────────────┘
获取表名称,其名称中不包含符号序列“s”。
SHOW TABLES FROM system NOT LIKE '%s%'
结果
┌─name─────────┐
│ metric_log │
│ metric_log_0 │
│ metric_log_1 │
└──────────────┘
从表名称中获取前两行。
SHOW TABLES FROM system LIMIT 2
结果
┌─name───────────────────────────┐
│ aggregate_function_combinators │
│ asynchronous_metric_log │
└────────────────────────────────┘
另请参阅
SHOW COLUMNS
显示列列表
SHOW [EXTENDED] [FULL] COLUMNS {FROM | IN} <table> [{FROM | IN} <db>] [{[NOT] {LIKE | ILIKE} '<pattern>' | WHERE <expr>}] [LIMIT <N>] [INTO
OUTFILE <filename>] [FORMAT <format>]
数据库和表名称可以以缩写形式指定为 <db>.<table>
,即 FROM tab FROM db
和 FROM db.tab
等效。如果未指定数据库,则查询将返回当前数据库中的列列表。
可选关键字 EXTENDED
目前没有任何效果,它仅出于与 MySQL 的兼容性而存在。
可选关键字 FULL
会导致输出包含 collation、comment 和 privilege 列。
该语句生成一个具有以下结构的结果表
field
- 列的名称 (String)type
- 列的数据类型。如果查询是通过 MySQL 线路协议进行的,则会显示 MySQL 中等效的类型名称。 (String)null
- 如果列数据类型是 Nullable,则为YES
,否则为NO
(String)key
- 如果列是主键的一部分,则为PRI
,如果列是排序键的一部分,则为SOR
,否则为空 (String)default
- 如果列的类型为ALIAS
、DEFAULT
或MATERIALIZED
,则为列的默认表达式,否则为NULL
。 (Nullable(String))extra
- 其他信息,目前未使用 (String)collation
- (仅当指定了FULL
关键字时) 列的排序规则,始终为NULL
,因为 ClickHouse 没有按列的排序规则 (Nullable(String))comment
- (仅当指定了FULL
关键字时) 列的注释 (String)privilege
- (仅当指定了FULL
关键字时) 您对该列拥有的权限,目前不可用 (String)
示例
获取表“order”中以“delivery_”开头的所有列的信息。
SHOW COLUMNS FROM 'orders' LIKE 'delivery_%'
结果
┌─field───────────┬─type─────┬─null─┬─key─────┬─default─┬─extra─┐
│ delivery_date │ DateTime │ 0 │ PRI SOR │ ᴺᵁᴸᴸ │ │
│ delivery_status │ Bool │ 0 │ │ ᴺᵁᴸᴸ │ │
└─────────────────┴──────────┴──────┴─────────┴─────────┴───────┘
另请参阅
SHOW DICTIONARIES
显示 字典 列表。
SHOW DICTIONARIES [FROM <db>] [LIKE '<pattern>'] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]
如果未指定 FROM
子句,则查询将返回当前数据库中的字典列表。
您可以通过以下方式获得与 SHOW DICTIONARIES
查询相同的结果
SELECT name FROM system.dictionaries WHERE database = <db> [AND name LIKE <pattern>] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]
示例
以下查询从 system
数据库中名称包含 reg
的表列表中选择前两行。
SHOW DICTIONARIES FROM db LIKE '%reg%' LIMIT 2
┌─name─────────┐
│ regions │
│ region_names │
└──────────────┘
SHOW INDEX
显示表的索引列表。
此语句主要用于与 MySQL 的兼容性。系统表 system.tables(用于主键)和 system.data_skipping_indices(用于数据跳过索引)提供等效的信息,但以更适合 ClickHouse 的方式呈现。
SHOW [EXTENDED] {INDEX | INDEXES | INDICES | KEYS } {FROM | IN} <table> [{FROM | IN} <db>] [WHERE <expr>] [INTO OUTFILE <filename>] [FORMAT <format>]
数据库和表名称可以以缩写形式指定为 <db>.<table>
,即 FROM tab FROM db
和 FROM db.tab
等效。如果未指定数据库,则查询将当前数据库视为数据库。
可选关键字 EXTENDED
目前没有任何效果,它仅出于与 MySQL 的兼容性而存在。
该语句生成一个具有以下结构的结果表
table
- 表的名称。 (String)non_unique
- 始终为1
,因为 ClickHouse 不支持唯一性约束。 (UInt8)key_name
- 索引的名称,如果索引是主键索引,则为PRIMARY
。 (String)seq_in_index
- 对于主键索引,列的位置从1
开始。对于数据跳过索引:始终为1
。 (UInt8)column_name
- 对于主键索引,列的名称。对于数据跳过索引:''
(空字符串),请参见字段“expression”。 (String)collation
- 索引中列的排序:如果升序,则为A
,如果降序,则为D
,如果未排序,则为NULL
。 (Nullable(String))cardinality
- 索引基数(索引中唯一值的个数)的估计值。目前始终为 0。 (UInt64)sub_part
- 始终为NULL
,因为 ClickHouse 不支持像 MySQL 那样的索引前缀。 (Nullable(String))packed
- 始终为NULL
,因为 ClickHouse 不支持打包索引(如 MySQL)。 (Nullable(String))null
- 目前未使用index_type
- 索引类型,例如PRIMARY
、MINMAX
、BLOOM_FILTER
等。 (String)comment
- 有关索引的其他信息,目前始终为''
(空字符串)。 (String)index_comment
-''
(空字符串),因为 ClickHouse 中的索引不能具有COMMENT
字段(如 MySQL)。 (String)visible
- 如果索引对优化器可见,则始终为YES
。 (String)expression
- 对于数据跳过索引,索引表达式。对于主键索引:''
(空字符串)。 (String)
示例
获取表“tbl”中所有索引的信息。
SHOW INDEX FROM 'tbl'
结果
┌─table─┬─non_unique─┬─key_name─┬─seq_in_index─┬─column_name─┬─collation─┬─cardinality─┬─sub_part─┬─packed─┬─null─┬─index_type───┬─comment─┬─index_comment─┬─visible─┬─expression─┐
│ tbl │ 1 │ blf_idx │ 1 │ 1 │ ᴺᵁᴸᴸ │ 0 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ BLOOM_FILTER │ │ │ YES │ d, b │
│ tbl │ 1 │ mm1_idx │ 1 │ 1 │ ᴺᵁᴸᴸ │ 0 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ MINMAX │ │ │ YES │ a, c, d │
│ tbl │ 1 │ mm2_idx │ 1 │ 1 │ ᴺᵁᴸᴸ │ 0 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ MINMAX │ │ │ YES │ c, d, e │
│ tbl │ 1 │ PRIMARY │ 1 │ c │ A │ 0 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ PRIMARY │ │ │ YES │ │
│ tbl │ 1 │ PRIMARY │ 2 │ a │ A │ 0 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ PRIMARY │ │ │ YES │ │
│ tbl │ 1 │ set_idx │ 1 │ 1 │ ᴺᵁᴸᴸ │ 0 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ SET │ │ │ YES │ e │
└───────┴────────────┴──────────┴──────────────┴─────────────┴───────────┴─────────────┴──────────┴────────┴──────┴──────────────┴─────────┴───────────────┴─────────┴────────────┘
另请参阅
SHOW PROCESSLIST
SHOW PROCESSLIST [INTO OUTFILE filename] [FORMAT format]
输出 system.processes 表的内容,该表包含当前正在处理的查询列表,但不包括 SHOW PROCESSLIST
查询。
SELECT * FROM system.processes
查询返回有关所有当前查询的数据。
提示(在控制台中执行)
$ watch -n1 "clickhouse-client --query='SHOW PROCESSLIST'"
SHOW GRANTS
显示用户的权限。
语法
SHOW GRANTS [FOR user1 [, user2 ...]] [WITH IMPLICIT] [FINAL]
如果未指定用户,则查询将返回当前用户的权限。
WITH IMPLICIT
修饰符允许显示隐式授予的权限(例如,GRANT SELECT ON system.one
)。
FINAL
修饰符将用户及其授予的角色(具有继承性)的所有权限合并。
SHOW CREATE USER
显示在 用户创建 时使用的参数。
语法
SHOW CREATE USER [name1 [, name2 ...] | CURRENT_USER]
SHOW CREATE ROLE
显示在 角色创建 时使用的参数。
语法
SHOW CREATE ROLE name1 [, name2 ...]
SHOW CREATE ROW POLICY
显示在 行策略创建 时使用的参数。
语法
SHOW CREATE [ROW] POLICY name ON [database1.]table1 [, [database2.]table2 ...]
SHOW CREATE QUOTA
显示在创建 配额 时使用的参数。
语法
SHOW CREATE QUOTA [name1 [, name2 ...] | CURRENT]
SHOW CREATE SETTINGS PROFILE
显示在创建 设置配置文件 时使用的参数。
语法
SHOW CREATE [SETTINGS] PROFILE name1 [, name2 ...]
SHOW USERS
返回 用户账户 名称列表。要查看用户账户参数,请参阅系统表 system.users。
语法
SHOW USERS
SHOW ROLES
返回 角色 列表。要查看其他参数,请参阅系统表 system.roles 和 system.role_grants。
语法
SHOW [CURRENT|ENABLED] ROLES
SHOW PROFILES
返回 设置配置文件 列表。要查看用户账户参数,请参阅系统表 settings_profiles。
语法
SHOW [SETTINGS] PROFILES
SHOW POLICIES
返回指定表的 行策略 列表。要查看用户账户参数,请参阅系统表 system.row_policies。
语法
SHOW [ROW] POLICIES [ON [db.]table]
SHOW QUOTAS
返回 配额 列表。要查看配额参数,请参阅系统表 system.quotas。
语法
SHOW QUOTAS
SHOW QUOTA
返回所有用户或当前用户的 配额 使用情况。要查看其他参数,请参阅系统表 system.quotas_usage 和 system.quota_usage。
语法
SHOW [CURRENT] QUOTA
SHOW ACCESS
语法
SHOW ACCESS
SHOW CLUSTER(S)
返回集群列表。所有可用的集群都列在 system.clusters 表中。
SHOW CLUSTER name
查询显示此集群的 system.clusters 表的内容。
语法
SHOW CLUSTER '<name>'
SHOW CLUSTERS [[NOT] LIKE|ILIKE '<pattern>'] [LIMIT <N>]
示例
查询
SHOW CLUSTERS;
结果
┌─cluster──────────────────────────────────────┐
│ test_cluster_two_shards │
│ test_cluster_two_shards_internal_replication │
│ test_cluster_two_shards_localhost │
│ test_shard_localhost │
│ test_shard_localhost_secure │
│ test_unavailable_shard │
└──────────────────────────────────────────────┘
查询
SHOW CLUSTERS LIKE 'test%' LIMIT 1;
结果
┌─cluster─────────────────┐
│ test_cluster_two_shards │
└─────────────────────────┘
查询
SHOW CLUSTER 'test_shard_localhost' FORMAT Vertical;
结果
Row 1:
──────
cluster: test_shard_localhost
shard_num: 1
shard_weight: 1
replica_num: 1
host_name: localhost
host_address: 127.0.0.1
port: 9000
is_local: 1
user: default
default_database:
errors_count: 0
estimated_recovery_time: 0
SHOW SETTINGS
返回系统设置及其值的列表。从 system.settings 表中选择数据。
语法
SHOW [CHANGED] SETTINGS LIKE|ILIKE <name>
子句
LIKE|ILIKE
允许为设置名称指定匹配模式。它可以包含通配符,如 %
或 _
。LIKE
子句区分大小写,ILIKE
子句不区分大小写。
当使用 CHANGED
子句时,查询仅返回与默认值不同的设置。
示例
带有 LIKE
子句的查询
SHOW SETTINGS LIKE 'send_timeout';
结果
┌─name─────────┬─type────┬─value─┐
│ send_timeout │ Seconds │ 300 │
└──────────────┴─────────┴───────┘
带有 ILIKE
子句的查询
SHOW SETTINGS ILIKE '%CONNECT_timeout%'
结果
┌─name────────────────────────────────────┬─type─────────┬─value─┐
│ connect_timeout │ Seconds │ 10 │
│ connect_timeout_with_failover_ms │ Milliseconds │ 50 │
│ connect_timeout_with_failover_secure_ms │ Milliseconds │ 100 │
└─────────────────────────────────────────┴──────────────┴───────┘
带有 CHANGED
子句的查询
SHOW CHANGED SETTINGS ILIKE '%MEMORY%'
结果
┌─name─────────────┬─type───┬─value───────┐
│ max_memory_usage │ UInt64 │ 10000000000 │
└──────────────────┴────────┴─────────────┘
SHOW SETTING
SHOW SETTING <name>
输出指定设置名称的设置值。
另请参阅
SHOW FILESYSTEM CACHES
SHOW FILESYSTEM CACHES
结果
┌─Caches────┐
│ s3_cache │
└───────────┘
另请参阅
SHOW ENGINES
SHOW ENGINES [INTO OUTFILE filename] [FORMAT format]
输出 system.table_engines 表的内容,其中包含服务器支持的表引擎的描述及其功能支持信息。
另请参阅
SHOW FUNCTIONS
SHOW FUNCTIONS [LIKE | ILIKE '<pattern>']
输出 system.functions 表的内容。
如果指定了 LIKE
或 ILIKE
子句,则查询将返回名称与提供的 <pattern>
匹配的系统函数列表。
另请参阅
SHOW MERGES
返回合并列表。所有合并都列在 system.merges 表中。
table
-- 表名。database
-- 表所在的数据库名称。estimate_complete
-- 预计完成时间(以秒为单位)。elapsed
-- 自合并开始以来的经过时间(以秒为单位)。progress
-- 已完成工作的百分比(0-100%)。is_mutation
-- 如果此过程是部分突变,则为 1。size_compressed
-- 合并部分的压缩数据的总大小。memory_usage
-- 合并过程的内存使用情况。
语法
SHOW MERGES [[NOT] LIKE|ILIKE '<table_name_pattern>'] [LIMIT <N>]
示例
查询
SHOW MERGES;
结果
┌─table──────┬─database─┬─estimate_complete─┬─elapsed─┬─progress─┬─is_mutation─┬─size_compressed─┬─memory_usage─┐
│ your_table │ default │ 0.14 │ 0.36 │ 73.01 │ 0 │ 5.40 MiB │ 10.25 MiB │
└────────────┴──────────┴───────────────────┴─────────┴──────────┴─────────────┴─────────────────┴──────────────┘
查询
SHOW MERGES LIKE 'your_t%' LIMIT 1;
结果
┌─table──────┬─database─┬─estimate_complete─┬─elapsed─┬─progress─┬─is_mutation─┬─size_compressed─┬─memory_usage─┐
│ your_table │ default │ 0.14 │ 0.36 │ 73.01 │ 0 │ 5.40 MiB │ 10.25 MiB │
└────────────┴──────────┴───────────────────┴─────────┴──────────┴─────────────┴─────────────────┴──────────────┘