Skip to content

Latest commit

 

History

History
238 lines (204 loc) · 17.3 KB

sql-statement-overview.md

File metadata and controls

238 lines (204 loc) · 17.3 KB
title summary
SQL 语句概述
介绍 TiDB 支持的 SQL 语句。

SQL 语句概述

TiDB 使用的 SQL 语句旨在遵循 ISO/IEC SQL 标准,并在必要时对 MySQL 和 TiDB 特定的语句进行了扩展。

Schema 管理与数据定义语句 (DDL)

SQL 语句 描述
ALTER DATABASE 修改数据库。
ALTER SEQUENCE 修改序列对象。
ALTER TABLE ... ADD COLUMN 在已有表中添加列。
ALTER TABLE ... ADD INDEX 在已有表中添加索引。
ALTER TABLE ... ALTER INDEX 修改索引定义。
ALTER TABLE ... CHANGE COLUMN 修改列定义。
ALTER TABLE ... COMPACT 对表进行数据整理。
ALTER TABLE ... DROP COLUMN 从表中删除列。
ALTER TABLE ... MODIFY COLUMN 修改列定义。
ALTER TABLE ... RENAME INDEX 重命名索引。
ALTER TABLE 修改表定义。
CREATE DATABASE 创建新数据库。
CREATE INDEX 在表上创建新索引。
CREATE SEQUENCE 创建新序列对象。
CREATE TABLE LIKE 复制已有表的定义,但不复制任何数据。
CREATE TABLE 创建新表。
CREATE VIEW 创建新视图。
DROP DATABASE 删除已有数据库。
DROP INDEX 从表中删除索引。
DROP SEQUENCE 删除序列对象。
DROP TABLE 删除已有表。
DROP VIEW 删除已有视图。
RENAME TABLE 重命名表。
SHOW COLUMNS FROM 显示表的列。
SHOW CREATE DATABASE 显示数据库的 CREATE 语句。
SHOW CREATE SEQUENCE 显示序列的 CREATE 语句。
SHOW CREATE TABLE 显示表的 CREATE 语句。
SHOW DATABASES 显示当前用户有权限访问的数据库列表。
SHOW FIELDS FROM 显示表的列。
SHOW INDEXES 显示表的索引。
SHOW SCHEMAS SHOW DATABASES 的别名,显示当前用户有权限访问的数据库列表。
SHOW TABLE NEXT_ROW_ID 显示表中下一个行的 ID。
SHOW TABLE REGIONS 显示 TiDB 中表的 Region 信息。
SHOW TABLE STATUS 显示 TiDB 中表的各种统计信息。
SHOW TABLES 显示数据库中的表。
TRUNCATE 清空表中的所有数据。

数据操作语句 (DML)

SQL 语句 描述
BATCH 在 TiDB 中将一个 DML 语句拆分为多个语句执行。
DELETE 从表中删除行。
INSERT 向表中插入新行。
REPLACE 替换现有的行或插入新行。
SELECT 从表中读取数据。
TABLE 从表中读取行数据。
UPDATE 修改表中现有的行。
WITH 定义公用表表达式。

事务语句

SQL 语句 描述
BEGIN 启动一个新事务。
COMMIT 提交当前事务。
ROLLBACK 回滚当前事务。
SAVEPOINT 在事务中设置一个保存点。
SET TRANSACTION GLOBALSESSION 范围更改当前隔离级别。
START TRANSACTION 启动一个新事务。

预处理语句

SQL 语句 描述
DEALLOCATE 释放预处理语句以释放相关资源。
EXECUTE 使用特定参数值执行预处理语句。
PREPARE 创建包含占位符的预处理语句。

管理语句

SQL 语句 描述
ADMIN CANCEL DDL 取消 DDL 作业。
ADMIN CHECK [TABLE|INDEX] 检查表或索引的完整性。
ADMIN CHECKSUM TABLE 计算表的校验和。
ADMIN CLEANUP INDEX 清理表中的索引。
ADMIN PAUSE DDL 暂停 DDL 作业。
ADMIN RESUME DDL 恢复 DDL 作业。
ADMIN SHOW DDL [JOBS|JOB QUERIES] 显示 DDL 作业信息或 DDL 对应的查询语句。
ADMIN SHOW TELEMETRY 显示遥测数据。
ADMIN 执行各种管理任务。
FLUSH TABLES 用于提供 MySQL 兼容性,在 TiDB 中没有实际用途。
SET <variable> 修改系统变量或用户变量。
SET [NAMES|CHARACTER SET] 设置字符集和排序规则。
SPLIT REGION 将 Region 切分为更小的 Region。

数据导入和导出

SQL 语句 描述
CANCEL IMPORT JOB 取消正在进行的导入任务。
IMPORT INTO 通过 TiDB Lightning 的物理导入模式 将数据导入到表中。
LOAD DATA 从 Amazon S3 或 Google Cloud Storage 加载数据到表中。
SHOW IMPORT JOB 显示导入任务的状态。

备份和恢复

SQL 语句 描述
BACKUP 对 TiDB 集群执行分布式备份操作。
FLASHBACK CLUSTER 将集群恢复到特定的时间点。
FLASHBACK DATABASE 恢复被 DROP 语句删除的数据库及其数据。
FLASHBACK TABLE 恢复被 DROPTRUNCATE 操作删除的表及其数据。
RECOVER TABLE 恢复被删除的表及其数据。
RESTORE 从备份中恢复数据库。
SHOW BACKUPS 显示备份任务。
SHOW RESTORES 显示恢复任务。

放置策略

SQL 语句 描述
ALTER PLACEMENT POLICY 修改放置策略。
ALTER RANGE 修改放置策略的范围。
CREATE PLACEMENT POLICY 创建新的放置策略。
DROP PLACEMENT POLICY 删除现有放置策略。
SHOW CREATE PLACEMENT POLICY 显示放置策略的 CREATE 语句。
SHOW PLACEMENT FOR 显示指定表的放置策略。
SHOW PLACEMENT LABELS 显示可用的放置标签。
SHOW PLACEMENT 显示放置规则。

资源组

SQL 语句 描述
ALTER RESOURCE GROUP 修改资源组。
CALIBRATE RESOURCE 估算并输出当前集群的 Request Unit (RU) 容量。
CREATE RESOURCE GROUP 创建新的资源组。
DROP RESOURCE GROUP 删除资源组。
QUERY WATCH 管理 Runaway Queries 监控列表。
SET RESOURCE GROUP 设置资源组。
SHOW CREATE RESOURCE GROUP 显示资源组的 CREATE 语句。

效用语句

SQL 语句 描述
DESC DESCRIBE 的别名,显示表的结构。
DESCRIBE 显示表的结构。
DO 执行表达式,但不返回任何结果。
EXPLAIN 显示查询的执行计划。
TRACE 提供查询执行的详细信息。
USE 选择当前数据库。

显示语句

SQL 语句 描述
SHOW BUILTINS 列出内置函数。
SHOW CHARACTER SET 列出字符集。
SHOW COLLATIONS 列出排序规则。
SHOW ERRORS 显示先前已执行语句中的错误。
SHOW STATUS 用于提供 MySQL 兼容性。对于大多数指标,TiDB 会使用 Prometheus 和 Grafana 来集中收集,而不是使用 SHOW STATUS
SHOW VARIABLES 显示系统变量。
SHOW WARNINGS 显示先前已执行语句中的警告和注意。

实例管理

SQL 语句 描述
ALTER INSTANCE 修改实例。
FLUSH STATUS 用于提供 MySQL 兼容性。对于大多数指标,TiDB 会使用 Prometheus 和 Grafana 来集中收集,而不是使用 SHOW STATUS
KILL 终止当前 TiDB 集群中任意一个 TiDB 实例的连接。
SHOW CONFIG 显示 TiDB 各组件的配置信息。
SHOW ENGINES 显示可用的存储引擎。
SHOW PLUGINS 显示已安装的插件。
SHOW PROCESSLIST 显示连接到相同 TiDB 服务器的当前会话。
SHOW PROFILES 用于提供 MySQL 兼容性,目前返回结果为空。
SHUTDOWN 停止客户端连接的 TiDB 实例,而不是整个 TiDB 集群。

锁定语句

SQL 语句 描述
LOCK STATS 锁定表或分区的统计信息。
LOCK TABLES 锁定当前会话的表。
UNLOCK STATS 解锁表或分区的统计信息。
UNLOCK TABLES 解锁表。

账户管理与数据控制语言 (DCL)

SQL 语句 描述
ALTER USER 修改用户。
CREATE ROLE 创建角色。
CREATE USER 创建新用户。
DROP ROLE 删除现有角色。
DROP USER 删除现有用户。
FLUSH PRIVILEGES 从权限表中重新加载权限的内存副本。
GRANT <privileges> 授予权限。
GRANT <role> 授予角色。
RENAME USER 重命名现有用户。
REVOKE <privileges> 撤销权限。
REVOKE <role> 撤销角色。
SET DEFAULT ROLE 设置默认角色。
SET PASSWORD 更改密码。
SET ROLE 在当前会话中启用角色。
SHOW CREATE USER 显示用户的 CREATE 语句。
SHOW GRANTS 显示与用户关联的权限。
SHOW PRIVILEGES 显示可用的权限。

TiCDC

SQL 语句 描述
ADMIN [SET|SHOW|UNSET] BDR ROLE 管理 BDR 角色。
SHOW MASTER STATUS 显示集群中当前最新的 TSO。

统计信息和执行计划管理

SQL 语句 描述
ANALYZE TABLE 收集表的统计信息。
CREATE BINDING 为 SQL 语句创建执行计划绑定。
DROP BINDING 删除 SQL 语句的执行计划绑定。
DROP STATS 删除表的统计信息。
EXPLAIN ANALYZE 工作方式类似于 EXPLAIN,但主要区别在于 EXPLAIN ANALYZE 会执行语句。
LOAD STATS 将统计信息加载到 TiDB 中。
SHOW ANALYZE STATUS 显示统计信息收集任务。
SHOW BINDINGS 显示已创建的 SQL 绑定。
SHOW STATS_HEALTHY 显示统计信息准确度的预估值。
SHOW STATS_HISTOGRAMS 显示统计信息中的直方图信息。
SHOW STATS_LOCKED 显示统计信息被锁定的表。
SHOW STATS_META 显示表中的行数和表中发生更改的行数。