跳转到主要内容
SHOW CREATE (TABLE|DATABASE|USER) 默认会隐藏敏感信息,除非启用以下设置:此外,用户还必须具有 displaySecretsInShowAndSelect 权限。

SHOW CREATE TABLE | DICTIONARY | VIEW | DATABASE

这些语句会返回一个 String 类型的单列, 其中包含用于创建指定对象的 CREATE 查询。

语法

Syntax
SHOW [CREATE] TABLE | TEMPORARY TABLE | DICTIONARY | VIEW | DATABASE [db.]table|view [INTO OUTFILE filename] [FORMAT format]
如果你使用此语句获取系统表的 CREATE 查询, 得到的将是一个查询,它只声明表结构, 但不能用于创建表。

SHOW DATABASES

该语句会显示所有数据库的列表。

语法

Syntax
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]

示例

在此示例中,我们使用 SHOW 获取名称中包含 ‘de’ 字符序列的数据库名称:
Query
SHOW DATABASES LIKE '%de%'
Response
┌─name────┐
│ default │
└─────────┘
我们也可以在不区分大小写的情况下这样做:
Query
SHOW DATABASES ILIKE '%DE%'
Response
┌─name────┐
│ default │
└─────────┘
或者,获取名称中不包含 ‘de’ 的数据库名:
Query
SHOW DATABASES NOT LIKE '%de%'
Response
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ system                         │
│ test                           │
│ tutorial                       │
└────────────────────────────────┘
最后,我们可以只获取前两个数据库的名称:
Query
SHOW DATABASES LIMIT 2
Response
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ default                        │
└────────────────────────────────┘

另请参见

SHOW TABLES

SHOW TABLES 语句用于显示表的列表。

语法

Syntax
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>]

示例

在此示例中,我们使用 SHOW TABLES 语句查找名称中包含 ‘user’ 的所有表:
Query
SHOW TABLES FROM system LIKE '%user%'
Response
┌─name─────────────┐
│ user_directories │
│ users            │
└──────────────────┘
我们也可以用不区分大小写的方式来实现:
Query
SHOW TABLES FROM system ILIKE '%USER%'
Response
┌─name─────────────┐
│ user_directories │
│ users            │
└──────────────────┘
或者,查找名称中不包含字母 ‘s’ 的表:
Query
SHOW TABLES FROM system NOT LIKE '%s%'
Response
┌─name─────────┐
│ metric_log   │
│ metric_log_0 │
│ metric_log_1 │
└──────────────┘
最后,我们只获取前两个表的名称:
Query
SHOW TABLES FROM system LIMIT 2
Response
┌─name───────────────────────────┐
│ aggregate_function_combinators │
│ asynchronous_metric_log        │
└────────────────────────────────┘

另请参阅

SHOW COLUMNS

SHOW COLUMNS 语句显示列列表。

语法

Syntax
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 dbFROM db.tab 等价。 如果未指定数据库,则查询会返回当前数据库中的列列表。 另有两个可选关键字:EXTENDEDFULLEXTENDED 关键字当前不起作用, 其存在是为了兼容 MySQL。FULL 关键字会使输出包含 排序规则、comment 和 privilege 列。 SHOW COLUMNS 语句会生成一个具有以下结构的结果表:
ColumnDescriptionType
field列名String
type列的数据类型。如果查询是通过 MySQL wire 协议发出的,则显示 MySQL 中对应的类型名称。String
null如果列的数据类型为 Nullable,则为 YES;否则为 NOString
key如果该列属于主键,则为 PRI;如果该列属于排序键,则为 SOR;否则为空String
default如果该列的类型为 ALIASDEFAULTMATERIALIZED,则为该列的默认表达式;否则为 NULLNullable(String)
extra附加信息,当前未使用String
collation(仅当指定了 FULL 关键字时) 列的排序规则;由于 ClickHouse 不支持列级排序规则,因此始终为 NULLNullable(String)
comment(仅当指定了 FULL 关键字时) 列注释String
privilege(仅当指定了 FULL 关键字时) 你对该列拥有的权限,当前不可用String

示例

在本示例中,我们将使用 SHOW COLUMNS 语句来获取表 ‘orders’ 中所有以 ‘delivery_’ 开头的列的信息:
Query
SHOW COLUMNS FROM 'orders' LIKE 'delivery_%'
Response
┌─field───────────┬─type─────┬─null─┬─key─────┬─default─┬─extra─┐
│ delivery_date   │ DateTime │    0 │ PRI SOR │ ᴺᵁᴸᴸ    │       │
│ delivery_status │ Bool     │    0 │         │ ᴺᵁᴸᴸ    │       │
└─────────────────┴──────────┴──────┴─────────┴─────────┴───────┘

另请参阅

SHOW DICTIONARIES

SHOW DICTIONARIES 语句用于显示字典列表。

语法

Syntax
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 的前两行。
Query
SHOW DICTIONARIES FROM db LIKE '%reg%' LIMIT 2
Response
┌─name─────────┐
│ regions      │
│ region_names │
└──────────────┘

SHOW INDEX

显示表的主键和数据跳过索引列表。 此语句主要是为兼容 MySQL 而存在。系统表 system.tables (用于 主键) 和 system.data_skipping_indices (用于数据跳过索引) 提供了等效的信息,但采用了更符合 ClickHouse 原生风格的方式。

语法

Syntax
SHOW [EXTENDED] {INDEX | INDEXES | INDICES | KEYS } {FROM | IN} <table> [{FROM | IN} <db>] [WHERE <expr>] [INTO OUTFILE <filename>] [FORMAT <format>]
数据库名和表名可以使用缩写形式 <db>.<table> 指定,即 FROM tab FROM dbFROM db.tab 等价。如果未指定数据库,则查询默认使用当前数据库。 可选关键字 EXTENDED 当前没有任何作用,仅用于兼容 MySQL。 该语句会生成一个具有以下结构的结果表:
ColumnDescriptionType
table表名。String
non_unique始终为 1,因为 ClickHouse 不支持唯一性约束。UInt8
key_name索引名称;如果该索引是主键索引,则为 PRIMARYString
seq_in_index对于主键索引,表示列的位置,从 1 开始;对于数据跳过索引,始终为 1UInt8
column_name对于主键索引,表示列名;对于数据跳过索引,为 '' (空字符串) ,参见字段 “expression”。String
collation列在索引中的排序方式:升序为 A,降序为 D,未排序为 NULLNullable(String)
cardinality索引基数 (索引中唯一值数量) 的估算值。目前始终为 0UInt64
sub_part始终为 NULL,因为 ClickHouse 不支持 MySQL 那样的索引前缀。Nullable(String)
packed始终为 NULL,因为 ClickHouse 不支持打包索引 (如 MySQL) 。Nullable(String)
null当前未使用
index_type索引类型,例如 PRIMARYMINMAXBLOOM_FILTER 等。String
comment索引的附加信息,目前始终为 '' (空字符串) 。String
index_comment'' (空字符串) ,因为 ClickHouse 中的索引不能有 COMMENT 字段 (如 MySQL) 。String
visible索引对优化器是否可见,始终为 YESString
expression对于数据跳过索引,表示索引表达式;对于主键索引,为 '' (空字符串) 。String

示例

在本示例中,我们使用 SHOW INDEX 语句获取表 ‘tbl’ 中所有索引的信息
Query
SHOW INDEX FROM 'tbl'
Response
┌─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

输出 system.processes 表的内容,其中包含当前正在处理的查询列表,但不包括 SHOW PROCESSLIST 查询。

语法

Syntax
SHOW PROCESSLIST [INTO OUTFILE filename] [FORMAT format]
SELECT * FROM system.processes 查询会返回当前所有查询的信息。
在终端中执行:
$ watch -n1 "clickhouse-client --query='SHOW PROCESSLIST'"

SHOW GRANTS

SHOW GRANTS 语句用于显示用户的权限。

语法

Syntax
SHOW GRANTS [FOR user1 [, user2 ...]] [WITH IMPLICIT] [FINAL]
如果未指定用户,则该查询会返回当前用户的权限。 WITH IMPLICIT 修饰符可显示隐式授权 (例如 GRANT SELECT ON system.one) FINAL 修饰符会合并该用户及其获授角色的所有授权 (包括继承的授权)

SHOW CREATE USER

SHOW CREATE USER 语句用于显示创建用户时所使用的参数。

语法

Syntax
SHOW CREATE USER [name1 [, name2 ...] | CURRENT_USER]

SHOW CREATE ROLE

SHOW CREATE ROLE 语句用于显示创建角色时所使用的参数。

语法

Syntax
SHOW CREATE ROLE name1 [, name2 ...]

SHOW CREATE ROW POLICY

SHOW CREATE ROW POLICY 语句会显示创建 ROW POLICY时所使用的参数。

语法

Syntax
SHOW CREATE [ROW] POLICY name ON [database1.]table1 [, [database2.]table2 ...]

SHOW CREATE QUOTA

SHOW CREATE QUOTA 语句会显示在创建 QUOTA时使用的参数。

语法

Syntax
SHOW CREATE QUOTA [name1 [, name2 ...] | CURRENT]

SHOW CREATE SETTINGS PROFILE

SHOW CREATE SETTINGS PROFILE 语句用于显示创建 settings profile时所使用的参数。

语法

Syntax
SHOW CREATE [SETTINGS] PROFILE name1 [, name2 ...]

SHOW USERS

SHOW USERS 语句会返回用户账户名称列表。 要查看用户账户的参数,请参见系统表 system.users

语法

Syntax
SHOW USERS

SHOW ROLES

SHOW ROLES 语句返回角色列表。 如需查看其他信息, 请参见系统表 system.rolessystem.role_grants

语法

Syntax
SHOW [CURRENT|ENABLED] ROLES

SHOW PROFILES

SHOW PROFILES 语句返回 profile 列表。 要查看用户账户参数,请参见系统表 settings_profiles

语法

Syntax
SHOW [SETTINGS] PROFILES

SHOW POLICIES

SHOW POLICIES 语句返回指定表的行策略列表。 要查看用户账户参数,请参见系统表 system.row_policies

语法

Syntax
SHOW [ROW] POLICIES [ON [db.]table]

SHOW QUOTAS

SHOW QUOTAS 语句返回QUOTA列表。 要查看QUOTA参数,请参见系统表 system.quotas

语法

Syntax
SHOW QUOTAS

SHOW QUOTA

SHOW QUOTA 语句返回所有用户或当前用户的 QUOTA 使用情况。 如需查看其他参数,请参见系统表 system.quotas_usagesystem.quota_usage

语法

Syntax
SHOW [CURRENT] QUOTA

SHOW ACCESS

SHOW ACCESS 语句会显示所有用户角色profile等,以及它们拥有的所有授权

语法

Syntax
SHOW ACCESS

SHOW CLUSTER(S)

SHOW CLUSTER(S) 语句会返回集群列表。 所有可用集群都列在 system.clusters 表中。
SHOW CLUSTER name 查询会显示指定集群在 system.clusters 表中的 clustershard_numreplica_numhost_namehost_addressport

语法

Syntax
SHOW CLUSTER '<name>'
SHOW CLUSTERS [[NOT] LIKE|ILIKE '<pattern>'] [LIMIT <N>]

示例

Query
SHOW CLUSTERS;
Response
┌─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                       │
└──────────────────────────────────────────────┘
Query
SHOW CLUSTERS LIKE 'test%' LIMIT 1;
Response
┌─cluster─────────────────┐
│ test_cluster_two_shards │
└─────────────────────────┘
Query
SHOW CLUSTER 'test_shard_localhost' FORMAT Vertical;
Response
Row 1:
──────
cluster:                 test_shard_localhost
shard_num:               1
replica_num:             1
host_name:               localhost
host_address:            127.0.0.1
port:                    9000

SHOW SETTINGS

SHOW SETTINGS 语句返回系统设置及其值的列表。 它从 system.settings 表中读取数据。

语法

Syntax
SHOW [CHANGED] SETTINGS LIKE|ILIKE <name>

子句

LIKE|ILIKE 允许为设置名称指定匹配模式。该模式可包含 %_ 等通配符。LIKE 子句区分大小写,ILIKE 子句不区分大小写。 使用 CHANGED 子句时,查询仅返回与默认值相比已更改的设置。

示例

使用 LIKE 子句的查询:
Query
SHOW SETTINGS LIKE 'send_timeout';
Response
┌─name─────────┬─type────┬─value─┐
│ send_timeout │ Seconds │ 300   │
└──────────────┴─────────┴───────┘
使用 ILIKE 子句查询:
Query
SHOW SETTINGS ILIKE '%CONNECT_timeout%'
Response
┌─name────────────────────────────────────┬─type─────────┬─value─┐
│ connect_timeout                         │ Seconds      │ 10    │
│ connect_timeout_with_failover_ms        │ Milliseconds │ 50    │
│ connect_timeout_with_failover_secure_ms │ Milliseconds │ 100   │
└─────────────────────────────────────────┴──────────────┴───────┘
使用 CHANGED 子句查询:
Query
SHOW CHANGED SETTINGS ILIKE '%MEMORY%'
Response
┌─name─────────────┬─type───┬─value───────┐
│ max_memory_usage │ UInt64 │ 10000000000 │
└──────────────────┴────────┴─────────────┘

SHOW SETTING

SHOW SETTING 语句会输出指定设置名称对应的设置值。

语法

Syntax
SHOW SETTING <name>

另请参见

SHOW FILESYSTEM CACHES

示例

Query
SHOW FILESYSTEM CACHES
Response
┌─Caches────┐
│ s3_cache  │
└───────────┘

另请参见

SHOW ENGINES

SHOW ENGINES 语句会输出 system.table_engines 表的内容, 其中包含 server 支持的表引擎说明以及其功能支持信息。

语法

Syntax
SHOW ENGINES [INTO OUTFILE filename] [FORMAT format]

另请参阅

SHOW FUNCTIONS

SHOW FUNCTIONS 语句会返回 system.functions 表的内容。

语法

Syntax
SHOW FUNCTIONS [LIKE | ILIKE '<pattern>']
如果指定了 LIKEILIKE 子句,查询将返回名称与给定 <pattern> 匹配的系统函数列表。

另请参阅

SHOW MERGES

SHOW MERGES 语句返回合并列表。 所有合并都列在 system.merges 表中:
ColumnDescription
table表名。
database该表所在的数据库名称。
estimate_complete预计完成时间 (以秒为单位) 。
elapsed自合并开始以来经过的时间 (以秒为单位) 。
progress已完成工作的百分比 (0–100%) 。
is_mutation如果该进程是 part mutation,则值为 1。
size_compressed已合并 parts 的压缩数据总大小。
memory_usage合并进程的内存占用。

语法

Syntax
SHOW MERGES [[NOT] LIKE|ILIKE '<table_name_pattern>'] [LIMIT <N>]

示例

Query
SHOW MERGES;
Response
┌─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 │
└────────────┴──────────┴───────────────────┴─────────┴──────────┴─────────────┴─────────────────┴──────────────┘
Query
SHOW MERGES LIKE 'your_t%' LIMIT 1;
Response
┌─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 CREATE MASKING POLICY

SHOW CREATE MASKING POLICY 语句用于显示在创建数据脱敏策略时所使用的参数。

语法

Syntax
SHOW CREATE MASKING POLICY name ON [database.]table
最后修改于 2026年6月10日