You need to enable JavaScript to run this app.
导航
SHOW 语句(SHOW)
最近更新时间:2025.08.14 10:17:09首次发布时间:2025.05.07 15:04:15
复制全文
我的收藏
有用
有用
无用
无用

您可使用 SHOW 语句查看数据库的相关信息,如查看当前集群中的数据库、数据库中的表、字典、权限等信息。

SHOW DATABASES

查看当前集群中的数据库,该查询等同于 SELECT name FROM system.databases

语法

SHOW DATABASES 

示例

-- 1. 创建库
CREATE DATABASE IF NOT EXISTS sample_db ON CLUSTER sample_cluster;

-- 2. 查看当前集群中的数据库
SHOW DATABASES;

SHOW TABLES

查看数据库中的表。

语法

使用时,如果未指定FROM 子句,查询将返回当前数据库中的表。

SHOW TABLES [FROM [databaseIdentifier]] [LIKE STRING_LITERAL]

参数说明

参数

是否必填

格式要求

说明

LIKE 'STRING_LITERAL'

可选

字符串字面量
(需单引号包裹)

表名模式过滤:
• 支持通配符 % (匹配任意字符序列)
• 支持通配符 _ (匹配单个字符)
示例:
LIKE 'user%' → 匹配 user_logs/users 等
LIKE 'temp_' → 匹配 temp1/tempA 等

示例

-- 1. 创建库
CREATE DATABASE IF NOT EXISTS sample_db ON CLUSTER sample_cluster;

-- 2. 创建表
DROP TABLE IF EXISTS sample_db.sample_table ON CLUSTER sample_cluster;
CREATE TABLE IF NOT EXISTS sample_db.sample_table ON CLUSTER sample_cluster;

-- 3. 查询名称中包含 table 的表
SHOW TABLES FROM sample_db LIKE '%table'

SHOW CREATE TABLE

查看表的建表语句。

语法

SHOW CREATE [TABLE] [tableIdentifier]

示例

-- 1. 创建库
CREATE DATABASE IF NOT EXISTS sample_db ON CLUSTER sample_cluster;

-- 2. 创建表
DROP TABLE IF EXISTS sample_db.sample_table ON CLUSTER sample_cluster;
CREATE TABLE sample_db.sample_table ON CLUSTER sample_cluster (
    `order_by_column` String
)
ENGINE = `MergeTree`
ORDER BY (`order_by_column`)

-- 3. 查看建表语句,系统将返回上述建表语句
SHOW CREATE TABLE sample_db.sample_table

SHOW DICTIONARIES

查看当前数据库或指定数据库中的字典列表。

语法

使用时,如果您未指定 FROM 子句,系统将返回当前数据库的字典列表。

SHOW DICTIONARIES [FROM ] 
[LIKE ''] 
[LIMIT ] 
[INTO OUTFILE ] 
[FORMAT ]

参数说明

参数

是否必填

说明

LIKE ''

可选

字典名称过滤模式:
• 支持 % 匹配任意字符(如 prod_%
• 支持 _ 匹配单个字符(如 dict_v_

LIMIT

可选

限制返回结果数量(正整数,如 LIMIT 10

INTO OUTFILE '<file_path>'

可选

将结果导出到文件(需绝对路径,如 /data/dict_list.csv

FORMAT <format_name>

可选

指定返回结果的格式(如 JSONCSV 等)

您也可以通过以下查询查看字典列表:

SELECT name 
FROM system.dictionaries 
WHERE database =  [AND name LIKE ] [LIMIT ] [INTO OUTFILE ] [FORMAT ]

示例

执行以下命令,查询 system 数据库中名称包含 'dict' 的字典表,返回前 2 个匹配结果。

-- 1. 创建库
CREATE DATABASE IF NOT EXISTS sample_db ON CLUSTER sample_cluster;

-- 2. 创建字典
CREATE DICTIONARY IF NOT EXISTS sample_db.sample_dict ON CLUSTER sample_cluster (
    `user_id` UInt64,
    `username` String,
    `age` UInt8 DEFAULT 0,
    `gender` UInt8 DEFAULT 0,
    `last_login` DateTime
)
PRIMARY KEY user_id
SOURCE(MySQL(
    host 'mysql_host.example.com'
    port 3306
    user 'dict_reader'
    password 'secure_password'
    db 'user_db'
    table 'users'
))
LAYOUT(FLAT())
LIFETIME(MIN 300 MAX 900);

-- 3. 查看字典
SHOW DICTIONARIES FROM sample_db.sample_dict LIKE '%dict%' LIMIT 2
┌─name─────┐
│ sample_dict  │
└────────┘

SHOW PROCESSLIST

查看当前数据库活动进程。

语法

SHOW PROCESSLIST [INTO OUTFILE filename] [FORMAT format]

该查询可查看除 SHOW PROCESSLIST 查询外,所有正在执行的查询请求列表,等同于输出 system.processes 系统表的内容。
您可使用 SELECT * FROM system.processes 查询返回和当前请求相关的所有数据,其中也包括 SHOW PROCESSLIST 命令自身的进程。
提示(在控制台执行):

$ watch -n1 "clickhouse-client --query='SHOW PROCESSLIST'"

示例

SHOW PROCESSLIST 
INTO OUTFILE '/var/log/long_queries.json';

SHOW GRANTS

查看用户的权限。使用时,如果未指定用户,系统将输出当前用户的权限。

语法

SHOW GRANTS [FOR user]

示例

-- 查看当前用户权限
SHOW GRANTS; 

-- 查看指定用户权限
SHOW GRANTS FOR 'demo_user';

SHOW CREATE USER

查看创建用户时使用的参数,但 SHOW CREATE USER 不会输出用户的密码信息。

语法

SHOW CREATE USER [name | CURRENT_USER]

示例

SHOW CREATE USER demo_user;

SHOW CREATE ROLE

查看创建角色时使用的参数。

语法

SHOW CREATE ROLE name 

SHOW CREATE ROW POLICY

查看指定行级安全策略(Row Policy)的创建参数,用于审计或重建策略。

语法

SHOW CREATE [ROW] POLICY name ON [database.]table 

示例

SHOW CREATE POLICY region_policy ON users;