您可使用 SHOW 语句查看数据库的相关信息,如查看当前集群中的数据库、数据库中的表、字典、权限等信息。
查看当前集群中的数据库,该查询等同于 SELECT name FROM system.databases。
SHOW DATABASES
-- 1. 创建库 CREATE DATABASE IF NOT EXISTS sample_db ON CLUSTER sample_cluster; -- 2. 查看当前集群中的数据库 SHOW DATABASES;
查看数据库中的表。
使用时,如果未指定FROM 子句,查询将返回当前数据库中的表。
SHOW TABLES [FROM [databaseIdentifier]] [LIKE STRING_LITERAL]
参数 | 是否必填 | 格式要求 | 说明 |
|---|---|---|---|
LIKE 'STRING_LITERAL' | 可选 | 字符串字面量 | 表名模式过滤: |
-- 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] [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
查看当前数据库或指定数据库中的字典列表。
使用时,如果您未指定 FROM 子句,系统将返回当前数据库的字典列表。
SHOW DICTIONARIES [FROM ] [LIKE ''] [LIMIT ] [INTO OUTFILE ] [FORMAT ]
参数 | 是否必填 | 说明 |
|---|---|---|
LIKE ' | 可选 | 字典名称过滤模式: |
LIMIT | 可选 | 限制返回结果数量(正整数,如 |
INTO OUTFILE '<file_path>' | 可选 | 将结果导出到文件(需绝对路径,如 |
FORMAT <format_name> | 可选 | 指定返回结果的格式(如 |
您也可以通过以下查询查看字典列表:
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 [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 [FOR user]
-- 查看当前用户权限 SHOW GRANTS; -- 查看指定用户权限 SHOW GRANTS FOR 'demo_user';
查看创建用户时使用的参数,但 SHOW CREATE USER 不会输出用户的密码信息。
SHOW CREATE USER [name | CURRENT_USER]
SHOW CREATE USER demo_user;
查看创建角色时使用的参数。
SHOW CREATE ROLE name
查看指定行级安全策略(Row Policy)的创建参数,用于审计或重建策略。
SHOW CREATE [ROW] POLICY name ON [database.]table
SHOW CREATE POLICY region_policy ON users;