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 SCHEMASSHOW 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 TRANSACTIONGLOBALSESSION 范围更改当前隔离级别。
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执行各种管理任务。
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 语句描述
DESCDESCRIBE 的别名,显示表的结构。
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 与 TiDB Binlog

SQL 语句描述
ADMIN [SET\|SHOW\|UNSET] BDR ROLE管理 BDR 角色。
CHANGE DRAINER修改集群中 Drainer 的状态信息。
CHANGE PUMP修改集群中 Pump 的状态信息。
SHOW DRAINER STATUS显示集群中所有 Drainer 节点的状态。
SHOW MASTER STATUS显示集群中当前最新的 TSO。
SHOW PUMP STATUS显示集群中所有 Pump 节点的状态信息。

统计信息和执行计划管理

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显示表中的行数和表中发生更改的行数。

文档内容是否有帮助?