MySQL のスニペット集

このページは、MySQL のスニペットをまとめる予定のページです。

目次

注意

  • このページを作ったひとが備忘のためにまとめているため網羅性はありません。
  • mysqldump などのコマンド操作は MySQL のコマンド操作 にあります。

スニペット

システム変数の表示

現在のセッションのシステム変数の表示
SHOW VARIABLES;
グローバルのシステム変数の表示
SHOW GLOBAL VARIABLES;
絞り込み (この例の場合現在のセッションの文字関係のシステム変数を表示)
SHOW VARIABLES LIKE '%char%';

変数のセット

SET @変数名 = 値やクエリなど;
行数のセットと表示
SET @count = (SELECT COUNT(*) FROM foo);
SELECT @count;

トランザクションの開始

BEGIN; -- or START TRANSACTION;
-- INSERT 等のクエリ...
COMMIT; -- ロールバックする場合は ROLLBACK;

トランザクション特性 (分離レベル) の指定

REPEATABLE READ
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
READ COMMITTED
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
READ UNCOMMITTED
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SERIALIZABLE
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;

トランザクション特性の確認

現在のセッション
SELECT @@tx_isolation;
グローバル
SELECT @@GLOBAL.tx_isolation;

行ロック

SELECT 列名 FROM テーブル名 WHERE 抽出条件 FOR UPDATE;

実行計画の確認

EXPLAIN クエリ;
EXPLAIN SELECT * FROM foo;

CREATE TABLE 文の表示

SHOW CREATE TABLE テーブル名;

テーブル名の表示

SHOW TABLES;
information_schema を使う場合
SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'データベース名';

テーブル列の表示

SHOW COLUMNS テーブル名;
列名を絞り込む場合
SHOW COLUMNS FROM テーブル名 LIKE '%絞り込みたい列名%';
別記法。DESC は DESCRIBE, EXPLAIN でも可
DESC テーブル名;
列名を絞り込む場合
DESC テーブル名 '%絞り込みたい列名%';