SQLステートメントの概要
TiDBは、ISO/IEC SQL標準に準拠することを目的とした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 | データベースの作成ステートメントを表示します。 |
SHOW CREATE SEQUENCE | シーケンスのCREATE文を表示します。 |
SHOW CREATE TABLE | テーブルの作成ステートメントを表示します。 |
SHOW DATABASES | 現在のユーザーが権限を持つデータベースの一覧を表示します。 |
SHOW FIELDS FROM | テーブルの列を表示します。 |
SHOW INDEXES | テーブルのインデックスを表示します。 |
SHOW SCHEMAS | SHOW DATABASESのエイリアス。現在のユーザーが権限を持つデータベースの一覧を表示します。 |
SHOW TABLE NEXT_ROW_ID | テーブルの次の行IDを表示します。 |
SHOW TABLE REGIONS | TiDB内のテーブルのリージョン情報を表示します。 |
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 | GLOBALまたはSESSIONに基づいて、現在の隔離レベルを変更します。 |
START TRANSACTION | 新しい取引を開始します。 |
準備された声明
| SQLステートメント | 説明 |
|---|---|
DEALLOCATE | プリペアドステートメントを解除し、関連するリソースを解放します。 |
EXECUTE | 特定のパラメータ値を指定して、プリペアドステートメントを実行します。 |
PREPARE | プレースホルダーを含むプリペアドステートメントを作成します。 |
行政声明
| SQLステートメント | 説明 |
|---|---|
ADMIN ALTER DDL JOBS | 実行中の単一のDDLジョブのパラメータを変更します。 |
ADMIN CANCEL DDL | DDLジョブをキャンセルします。 |
| [`ADMIN CHECK [TABLE | INDEX]`](/sql-statements/sql-statement-admin-check-table-index.md) |
ADMIN CHECKSUM TABLE | テーブルのチェックサムを計算します。 |
ADMIN CLEANUP INDEX | テーブルからインデックスを削除します。 |
ADMIN PAUSE DDL | DDL操作を一時停止します。 |
ADMIN RESUME DDL | DDL操作を再開します。 |
| [`ADMIN SHOW DDL [JOBS | JOB QUERIES]`](/sql-statements/sql-statement-admin-show-ddl.md) |
ADMIN | 様々な事務作業を行う。 |
FLUSH TABLES | MySQLとの互換性のために含まれています。 TiDB では効果的な使用法がありません。 |
SET <variable> | システム変数またはユーザー変数を変更します。 |
| [`SET [NAMES | CHARACTER SET]`](/sql-statements/sql-statement-set-names.md) |
SPLIT 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 | 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 | リソースグループを変更します。 |
CALIBRATE RESOURCE | 現在のクラスターのリクエストユニット(RU)容量を推定して出力します。 |
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 は、ほとんどのメトリックに対してSHOW STATUSの代わりにプロメテウスプロメテウスとグラファナグラファナを使用して一元的なメトリック収集を行います。 |
SHOW VARIABLES | システム変数を表示します。 |
SHOW WARNINGS | 以前に実行されたステートメントに関する警告と注記を表示します。 |
インスタンス管理
| SQLステートメント | 説明 |
|---|---|
ALTER INSTANCE | インスタンスを変更します。 |
FLUSH STATUS | MySQLとの互換性のために含まれています。 TiDB は、ほとんどのメトリックに対してSHOW STATUSの代わりにプロメテウスプロメテウスとグラファナグラファナを使用して一元的なメトリック収集を行います。 |
KILL | 現在の TiDB クラスタ内の任意の TiDB インスタンスの接続を切断します。 |
SHOW CONFIG | TiDBの各種コンポーネントの設定を表示します。 |
SHOW ENGINES | 利用可能なstorageエンジンを表示します。 |
SHOW PLUGINS | インストールされているプラグインを表示します。 |
SHOW PROCESSLIST | 同じ TiDBサーバーに接続されている現在のセッションを表示します。 |
SHOW PROFILES | MySQLとの互換性のために含まれています。現時点では、空の結果のみが返されます。 |
SHUTDOWN | クライアントに接続されているTiDBインスタンスを停止します。TiDBクラスタ全体を停止するわけではありません。 |
ロックステートメント
| SQLステートメント | 説明 |
|---|---|
LOCK STATS | テーブルまたはパーティションの統計情報をロックします。 |
LOCK TABLES | 現在のセッションのテーブルをロックします。 |
UNLOCK STATS | テーブルまたはパーティションの統計情報へのアクセス権限を解放します。 |
UNLOCK TABLES | テーブルのロックを解除します。 |
アカウント管理/データ制御言語
| 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 |
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 | 統計情報の中から上位N件の情報を表示します。 |