SQL 语句概述
TiDB 使用的 SQL 语句旨在遵循 ISO/IEC SQL 标准,并在必要时扩展支持 MySQL 和 TiDB 特有的语句。
模式管理 / 数据定义语言(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 | 将 DML 语句拆分成多个语句在 TiDB 中执行。 |
DELETE | 删除表中的行。 |
INSERT | 向表中插入新行。 |
REPLACE | 替换已存在的行或插入新行。 |
SELECT | 从表中读取数据。 |
TABLE | 获取表中的行。 |
UPDATE | 更新表中的已存在行。 |
WITH | 定义公共表表达式。 |
事务语句
SQL 语句 | 描述 |
---|---|
BEGIN | 开始一个新事务。 |
COMMIT | 提交当前事务。 |
ROLLBACK | 回滚当前事务。 |
SAVEPOINT | 在事务中设置保存点。 |
SET TRANSACTION | 改变当前的隔离级别(GLOBAL 或 SESSION 级别)。 |
START TRANSACTION | 启动一个新事务。 |
预处理语句
SQL 语句 | 描述 |
---|---|
DEALLOCATE | 取消预处理语句,释放相关资源。 |
EXECUTE | 使用特定参数值执行预处理语句。 |
PREPARE | 创建带有占位符的预处理语句。 |
管理员语句
SQL 语句 | 描述 |
---|---|
ADMIN ALTER DDL JOBS | 修改单个正在运行的 DDL 任务参数。 |
ADMIN CANCEL DDL | 取消 DDL 任务。 |
ADMIN CHECK [TABLE\|INDEX] | 检查表或索引的完整性。 |
ADMIN CHECKSUM TABLE | 计算表的校验和。 |
ADMIN CLEANUP INDEX | 清理表中的索引。 |
ADMIN PAUSE DDL | 暂停 DDL 操作。 |
ADMIN RECOVER INDEX | 根据冗余索引恢复一致性。 |
ADMIN RESUME DDL | 恢复 DDL 操作。 |
ADMIN SHOW DDL [JOBS\|JOB QUERIES] | 显示 DDL 任务或任务查询。 |
ADMIN | 执行各种管理任务。 |
FLUSH TABLES | 包含于 MySQL 兼容性。在 TiDB 中没有实际用途。 |
SET <variable> | 修改系统变量或用户变量。 |
SET [NAMES\|CHARACTER SET] | 设置字符集和校对规则。 |
SPLIT REGION | 将 Region 分割成更小的 Region。 |
数据导入与导出
SQL 语句 | 描述 |
---|---|
CANCEL IMPORT JOB | 取消正在进行的导入任务。 |
IMPORT INTO | 通过 TiDB Lightning 的 Physical Import Mode 将数据导入表中。 |
LOAD DATA | 从 Amazon S3 或 Google Cloud Storage 加载数据到表中。 |
SHOW IMPORT JOB | 显示导入任务的状态。 |
备份与还原
SQL 语句 | 描述 |
---|---|
BACKUP | 执行 TiDB 集群的分布式备份。 |
FLASHBACK CLUSTER | 将集群还原到某个快照。 |
FLASHBACK DATABASE | 还原被 DROP 语句删除的数据库及其数据。 |
FLASHBACK TABLE | 还原被 DROP 或 TRUNCATE 操作删除的表和数据。 |
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 | 修改资源组。 |
CREATE RESOURCE GROUP | 创建新的资源组。 |
DROP RESOURCE GROUP | 删除资源组。 |
QUERY WATCH | 管理超时查询监控列表。 |
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 Cloud 提供 Monitoring 进行集中指标采集,大部分指标不使用 SHOW STATUS 。 |
SHOW VARIABLES | 显示系统变量。 |
SHOW WARNINGS | 显示之前执行语句的警告和备注。 |
实例管理
SQL 语句 | 描述 |
---|---|
ALTER INSTANCE | 修改实例。 |
FLUSH STATUS | 包含于 MySQL 兼容性。TiDB Cloud 提供 Monitoring 进行集中指标采集,大部分指标不使用 SHOW STATUS 。 |
KILL | 终止当前 TiDB 集群中任何实例的连接。 |
SHOW ENGINES | 显示可用的存储引擎。 |
SHOW PLUGINS | 显示已安装的插件。 |
SHOW PROCESSLIST | 显示当前连接到同一 TiDB 服务器的会话。 |
SHOW PROFILES | 显示查询配置文件。 包含于 MySQL 兼容性。目前仅返回空结果。 |
锁定语句
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 语句 | 描述 |
---|---|
SHOW MASTER STATUS | 显示集群中的最新 TSO。 |
统计信息与执行计划管理
SQL 语句 | 描述 |
---|---|
ANALYZE TABLE | 收集表的统计信息。 |
CREATE BINDING | 为 SQL 语句创建执行计划绑定。 |
DROP BINDING | 从 SQL 语句中删除执行计划绑定。 |
DROP STATS | 删除表的统计信息。 |
EXPLAIN ANALYZE | 类似于 EXPLAIN ,但会执行该语句。 |
LOAD STATS | 将统计信息加载到 TiDB 中。 |
SHOW ANALYZE STATUS | 显示统计信息采集任务。 |
SHOW BINDINGS | 显示已创建的 SQL 绑定。 |
SHOW COLUMN_STATS_USAGE | 显示列统计的最后使用时间和采集时间。 |
SHOW STATS_BUCKETS | 显示统计信息中的桶信息。 |
SHOW STATS_HEALTHY | 显示统计信息的估计准确性。 |
SHOW STATS_HISTOGRAMS | 显示统计信息中的直方图信息。 |
SHOW STATS_LOCKED | 显示统计信息被锁定的表。 |
SHOW STATS_META | 显示表中的行数以及变更的行数。 |
SHOW STATS_TOPN | 显示统计信息中的 Top-N 信息。 |