SHOW CREATE TABLE | DICTIONARY | VIEW | DATABASE
这些语句返回一个类型为 String 的单列,
包含用于创建指定对象的 CREATE
查询。
SHOW [CREATE] TABLE | TEMPORARY TABLE | DICTIONARY | VIEW | DATABASE [db.]table|view [INTO OUTFILE filename] [FORMAT format]
备注
如果您使用此语句获取系统表的 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]
在此示例中,我们使用 SHOW
获取名称中包含符号序列 'de' 的数据库名称:
SHOW DATABASES LIKE '%de%'
┌─name────┐
│ default │
└─────────┘
我们也可以以不区分大小写的方式执行此操作:
SHOW DATABASES ILIKE '%DE%'
┌─name────┐
│ default │
└─────────┘
或者获取名称中不包含 'de' 的数据库名称:
SHOW DATABASES NOT LIKE '%de%'
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ system │
│ test │
│ tutorial │
└────────────────────────────────┘
最后,我们可以只获取前两个数据库的名称:
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ default │
└────────────────────────────────┘
另请参见
SHOW TABLES
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>]
在此示例中,我们使用 SHOW TABLES
语句查找所有名称中包含 'user' 的表:
SHOW TABLES FROM system LIKE '%user%'
┌─name─────────────┐
│ user_directories │
│ users │
└──────────────────┘
我们也可以以不区分大小写的方式执行此操作:
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 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
和 FULL
。 EXTENDED
关键字目前没有效果,
存在是为了与 MySQL 兼容。 FULL
关键字使输出包括校对、注释和权限列。
SHOW COLUMNS
语句产生一个结果表,其结构如下:
列 | 描述 | 类型 |
---|
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 |
在此示例中,我们将使用 SHOW COLUMNS
语句获取表 'orders' 中所有列的信息,从 '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
语句显示 字典 的列表。
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 |
在此示例中,我们使用 SHOW INDEX
语句获取表 '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
输出 system.processes
表的内容,其中包含当前正在处理的查询列表,不包括 SHOW PROCESSLIST
查询。
SHOW PROCESSLIST [INTO OUTFILE filename] [FORMAT format]
SELECT * FROM system.processes
查询返回所有当前查询的数据。
提示
在控制台中执行:
$ watch -n1 "clickhouse-client --query='SHOW PROCESSLIST'"
SHOW GRANTS
SHOW GRANTS
语句显示用户的权限。
SHOW GRANTS [FOR user1 [, user2 ...]] [WITH IMPLICIT] [FINAL]
如果未指定用户,则查询返回当前用户的权限。
WITH IMPLICIT
修饰符允许显示隐式授予(例如,GRANT SELECT ON system.one
)
FINAL
修饰符合并来自用户及其授予角色(带继承)的所有授予。
SHOW CREATE USER
SHOW CREATE USER
语句显示用于 用户创建 的参数。
SHOW CREATE USER [name1 [, name2 ...] | CURRENT_USER]
SHOW CREATE ROLE
SHOW CREATE ROLE
语句显示用于 角色创建 的参数。
SHOW CREATE ROLE name1 [, name2 ...]
SHOW CREATE ROW POLICY
SHOW CREATE ROW POLICY
语句显示用于 行策略创建 的参数。
SHOW CREATE [ROW] POLICY name ON [database1.]table1 [, [database2.]table2 ...]
SHOW CREATE QUOTA
SHOW CREATE QUOTA
语句显示用于 配额创建 的参数。
SHOW CREATE QUOTA [name1 [, name2 ...] | CURRENT]
SHOW CREATE SETTINGS PROFILE
SHOW CREATE SETTINGS PROFILE
语句显示用于 设置配置文件创建 的参数。
SHOW CREATE [SETTINGS] PROFILE name1 [, name2 ...]
SHOW USERS
SHOW USERS
语句返回一个 用户帐户 名称列表。
要查看用户帐户参数,请参见系统表 system.users
。
SHOW ROLES
SHOW ROLES
语句返回一个 角色 名称列表。
要查看其他参数,
请参见系统表 system.roles
和 system.role_grants
。
SHOW [CURRENT|ENABLED] ROLES
SHOW PROFILES
SHOW PROFILES
语句返回一个 设置配置文件 名称列表。
要查看用户帐户参数,请参见系统表 settings_profiles
。
SHOW POLICIES
SHOW POLICIES
语句返回指定表的 行策略 列表。
要查看用户帐户参数,请参见系统表 system.row_policies
。
SHOW [ROW] POLICIES [ON [db.]table]
SHOW QUOTAS
SHOW QUOTAS
语句返回 配额 列表。
要查看配额参数,请参见系统表 system.quotas
。
SHOW QUOTA
SHOW QUOTA
语句返回所有用户或当前用户的 配额 消耗。
要查看其他参数,请参见系统表 system.quotas_usage
和 system.quota_usage
。
SHOW ACCESS
SHOW ACCESS
语句显示所有 用户、角色、配置文件 等及其所有 授权。
SHOW CLUSTER(S)
SHOW CLUSTER(S)
语句返回集群列表。
所有可用集群都列在 system.clusters
表中。
备注
SHOW CLUSTER name
查询显示 system.clusters
表中指定集群名称的 cluster
、shard_num
、replica_num
、host_name
、host_address
和 port
。
SHOW CLUSTER '<name>'
SHOW CLUSTERS [[NOT] LIKE|ILIKE '<pattern>'] [LIMIT <N>]
┌─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
replica_num: 1
host_name: localhost
host_address: 127.0.0.1
port: 9000
SHOW SETTINGS
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
语句输出指定设置名称的设置值。
另请参见
SHOW FILESYSTEM CACHES
┌─Caches────┐
│ s3_cache │
└───────────┘
另请参见
SHOW ENGINES
SHOW ENGINES
语句输出 system.table_engines
表的内容,
其中包含服务器支持的表引擎及其功能支持信息的描述。
SHOW ENGINES [INTO OUTFILE filename] [FORMAT format]
另请参见
SHOW FUNCTIONS
SHOW FUNCTIONS
语句输出 system.functions
表的内容。
SHOW FUNCTIONS [LIKE | ILIKE '<pattern>']
如果指定了 LIKE
或 ILIKE
子句,则查询会返回与提供的 <pattern>
匹配的系统函数名称列表。
另请参见
SHOW MERGES
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>]
┌─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 │
└────────────┴──────────┴───────────────────┴─────────┴──────────┴─────────────┴─────────────────┴──────────────┘