SHOW構文の使い方まとめ(SHOW DATABASES・SHOW TABLES・SHOW COLUMNS)
SHOW構文
SQLのSHOWコマンドは、データベースやテーブル、フィールドなどの情報を提供します。
SHOW構文では、LIKEを使って前方一致、後方一致の検索が可能です。
例えば、後方一致で「_url」にマッチするフィールドを探すには以下の通りです。
SHOW COLUMNS FROM WP_LINKS LIKE "%_url";
SHOW 構文
SHOW DATABASES [LIKE 文字列]
or SHOW [OPEN] TABLES [FROM データベース名] [LIKE 文字列]
or SHOW [FULL] COLUMNS FROM テーブル名 [FROM データベース名] [LIKE 文字列]
or SHOW INDEX FROM テーブル名 [FROM データベース名]
or SHOW TABLE STATUS [FROM db_name] [LIKE 文字列]
or SHOW STATUS [LIKE 文字列]
or SHOW VARIABLES [LIKE 文字列]
or SHOW [FULL] PROCESSLIST
or SHOW GRANTS FOR ユーザ名
or SHOW CREATE TABLE
テーブル名
or SHOW MASTER STATUS
or SHOW MASTER LOGS
or SHOW SLAVE STATUS
SHOW構文の使用例
SHOW INDEX FROM mydb.mytable;
よく使うSHOW構文
SHOW DATABASES
データベース名の一覧を表示します。
SHOW DATABASES; +----------+ | Database | +----------+ | mydb | | mysql | | test | +----------+
SHOW TABLES
選択中のテーブル名を一覧表示します。
SHOW TABLES; +----------------+ | Tables_in_MYDB | +----------------+ | customer | | goods | | purchase | | purchase_goods | +----------------+
SHOW COLUMNS / SHOW FIELDS
SHOW COLUMNSは、指定したテーブルのフィールド(項目)を表示します。FULLオプションを指定した場合、各フィールドへの権限も表示されます。
SHOW COLUMNS FROM customer; +-------+-----------------------+------+-----+ | Field | Type | Null | Key | Default | Extra | +-------+-----------------------+------+-----+ | id_c | mediumint(8) unsigned | | PRI | NULL | auto_increment | | sei | varchar(20) | YES | | NULL | | | mei | varchar(20) | YES | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | | sex | tinyint(1) unsigned | YES | | NULL | | +-------+-----------------------+------+-----+
SHOW KEYS / SHOW INDEX
SHOW INDEXはインデックス情報を表示します。
SHOW INDEX FROM customer; +----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Comment |
+----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+---------+ | CUSTOMER | 0 | PRIMARY | 1 | id_c | A | 5 | NULL | NULL | | +----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+---------+
以下の項目が返ります。
| フィールド名 | 意味 |
|---|---|
| Table | テーブル名です。 |
| Non_unique | インデックスが重複を含まないなら 0 |
| Key_name | インデックス名です。 |
| Seq_in_index | インデックスのフィールド番号。1 から始まります。 |
| Column_name | フィールド名です。 |
| Collation | インデックスでのソート方法です。A (Ascending) または NULL (Not sorted) が入ります。 |
| Cardinality | インデックスのユニークな値の数。 |
| Sub_part |
もしこのフィールドがインデックスに一部分だけ使用している場合、そのインデックスに使用しているキャラクター数をしめす。 もしキー全体がインデックスされているなら NULL 。 |
| Comment | Various remarks. For now, it tells whether index is FULLTEXT or not. |
管理者向けSHOW構文
SHOW VARIABLES
SHOW VARIABLESは、MySQLシステム変数の値を表示します。
SHOW VARIABLES [LIKE wild]
SHOW PROCESSLIST
SHOW PROCESSLISTは、現在実行中のプロセスの一覧を表示します。ただし、権限により表示されるスレッドが限られます。
オプションを使用しない場合、各クエリの最初の100文字が表示されます。クエリ全文を確認したい場合は、SHOW FULL PROCESSLIST を実行します。
SHOW TABLE STATUS
SHOW TABLE STATUS [FROM db_name] [LIKE wild]
SHOW TABLE STATUSは、それぞれのテーブルについて詳細な情報を提供します。 mysqlshow --status db_name 命令文を実行しても同じものが得られます。
SHOW TABLE STATUSは以下の項目を返します。
| 項目 | 意味 |
|---|---|
| Name | テーブル名 |
| Type | テーブルの種類 「7 MySQL テーブル型」節参照. |
| Row_format | レコードの保存形式 (Fixed, Dynamic, or Compressed) |
| Rows | レコード数 |
| Avg_row_length | レコードの平均長 |
| Data_length | データファイルの大きさ |
| Max_data_length | データファイルの最大値 |
| Index_length | インデックスファイルの大きさ |
| Data_free | 割り当てられたが使用されていないバイト数 |
| Auto_increment | 次の autoincrement 値 |
| Create_time | テーブル作成時刻 |
| Update_time | 一番最後に更新された時刻 |
| Check_time | 一番最後にチェックされた時刻 |
| Create_options | CREATE TABLE で使用された拡張オプション |
| Comment | テーブル作成時につけられたコメント (あるいは、なぜこのテーブルにMySQL がアクセスできないかのいくつかの情報). |
SHOW STATUS
サーバのステータス情報を表示します。
ステータス変数
| Aborted_clients | クライアントが接続を閉じる前に死んでしまったために中断された接続数。 |
| Aborted_connects | クライアントが接続を閉じる前に死んでしまったために中断された接続数。 |
| Created_tmp_tables | MySQL サーバに接続を試みて失敗した数 |
| Created_tmp_tables | ステートメントを実行している間に創り出された一時的なテーブルの数. |
| Delayed_insert_threads | 使用中の delayed insert handler threads 数 |
| Delayed_writes | INSERT DELAYED で書かれた行数 |
| Delayed_errors | INSERT DELAYED で書かれた行でなんらかのエラーのあった行数 |
| Flush_commands | FLUSH 命令文の実行回数 |
| Handler_delete | テーブルから行を削除するためのリクエスト数 |
| Handler_read_first | あるテーブルから特定行を最初に読み込むことを要求した数 |
| Handler_read_key | キーを元にした行の読み込みを要求した数 |
| Handler_read_next | キーの順番にそって、次の行を読み込むことを要求した数 |
| Handler_read_rnd | ある固定された位置に基づいた行を読み込んだリクエスト数 |
| Handler_update | テーブルの行を更新するための要求数 |
| Handler_write | テーブルに行を挿入するためのリクエスト数 |
| Key_blocks_used | キーキャッシュ中で使用されたブロック数 |
| Key_read_requests | キャッシュからキーブロックを読み込ませたリクエスト数 |
| Key_reads | ディスクから物理的の読み込んだキーブロックの数 |
| Key_write_requests | キャッシュにキーブロックを書かせたリクエスト数 |
| Key_writes | ディスクに物理的に書かれたキーブロック数 |
| Max_used_connections | 同時に使用された接続の最大数 |
| Not_flushed_key_blocks | 変更されたものの、まだディスクに書き出されていない、キーキャッシュ中のキーブロックの数 |
| Not_flushed_delayed_rows | INSERT DELAY キューに書きだされることを待っている行の数 |
| Open_tables | オープンされているテーブル数 |
| Open_files | オープンされているファイル数 |
| Open_streams | オープンされているストリーム数 |
| Opened_tables | オープンされたテーブル数 |
| Questions | サーバにたいする問い合わせ数 |
| Running_threads | 現在開かれている接続数 |
| Slow_queries | long_query_time以上にかかったクエリの数 |
| Uptime | サーバが走っている秒数 |
SHOW GRANTS
SHOW GRANTSは、現在のユーザーに対するグラントを一覧表示します。
mysql> SHOW GRANTS FOR root@localhost; +---------------------------------------------------------------------+ | Grants for root@localhost | +---------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION | +---------------------------------------------------------------------+
SHOW CREATE TABLE
SHOW CREATE TABLEは、指定されたテーブルを作成する CREATE TABLE構文を表示します。
mysql> show create table t\G *************************** 1. row *************************** Table: t Create Table: CREATE TABLE t ( id int(11) default NULL auto_increment, s char(60) default NULL, PRIMARY KEY (id) ) TYPE=MyISAM
DESCRIBE構文
構文:
{DESCRIBE | DESC} テーブル名 {フィールド名| 文字列}
DESCRIBE はフィールドについての情報を与えます。