第3章 SQL構文

SHOW構文:テーブル情報を表示する

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_tablesMySQL サーバに接続を試みて失敗した数
Created_tmp_tables ステートメントを実行している間に創り出された一時的なテーブルの数. 
Delayed_insert_threads使用中の delayed insert
handler threads 数 
Delayed_writesINSERT DELAYED で書かれた行数
Delayed_errorsINSERT DELAYED
で書かれた行でなんらかのエラーのあった行数
Flush_commandsFLUSH 命令文の実行回数
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_rowsINSERT 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 はフィールドについての情報を与えます。

\ 30日間のお試し期間あり/

無料でKindle Unlimitedを試してみる

※Amazonアカウントですぐに登録可能。いつでも解約できます

関連記事