DESCRIBE とは、情報を詳細に表示することを意味します。 MySQLにはテーブルがあるので、DESCRIBEコマンドを使って、カラム名、カラム名に対する制約など、テーブルの構造を表示することにします。 DESCコマンドは、DESCRIBEコマンドの短縮形です。 DESCRIBEとDESCコマンドは両方とも同等で、大文字と小文字を区別します。
Syntax
以下はテーブル構造を表示する構文です:
Step 1: MySQLデータベースサーバーにログインします。
Step 2: 特定のデータベースに切り替えます。
ステップ 3: DESCRIBE 文を実行します。
選択したデータベースでテーブルの列を表示する方法を説明する例の助けを借りてそれを理解しましょう。
MySQL データベースへのログイン
最初のステップは、ユーザー名とパスワードを使用してデータベースサーバーにログインします。 我々は、以下の画像のような出力を参照してください:
Switch to a Specific Database
次のステップは、次のクエリを使用して、そこからテーブル情報を表示したい特定のデータベースを開くことです。 クエリの実行後、我々は以下の出力を参照してください:
Execute DESCRIBE Statement
これは、テーブル情報を表示するための最後のステップである。 DESCRIBEステートメントを実行する前に、オプションでSHOW TABLESステートメントを使用して選択したデータベースに格納されているすべてのテーブルを表示することができます:
例えば、我々は顧客テーブルの構造を表示したい場合は、次のステートメントを実行します。 実行に成功した後、それは以下の画像のような出力を与える:
我々はまた、練習のためにDESC文、これはDESCRIBEコマンドの略語である使用することができます。 MySQL Workbench でテーブルのカラム情報を表示するには、まず Workbench ツールを起動し、MySQL データベースサーバにユーザ名とパスワードでログインする必要があります。 次の画面が表示されます:
ここで、テーブル情報を表示するために次の手順を実行します:
1. ナビゲーションタブに移動し、スキーマメニューをクリックします。 ここでは、以前に作成されたすべてのデータベースを見ることができます。 スキーマ]メニューから任意のデータベース、たとえば「mysqltestdb」を選択します。 次の画像に示すような複数のオプションがポップアップ表示されます。 次に、「テーブル」をクリックすると、mysqltestdb データベースに保存されているすべてのテーブルが表示されます。 カラム情報を表示したいテーブルを選択します。 そのテーブルをマウスでクリックすると、3つのアイコンが表示されます。
ここで、赤い四角い枠の中にあるアイコン(i)をクリックします。
最後に、「列」メニューをクリックして、テーブル構造を表示します。
MySQL SHOW COLUMNS コマンド
MySQL では、SHOW COLUMNS コマンドでテーブル構造を表示することも可能です。 これは、テーブルのカラム情報を取得する、より柔軟な方法です。
構文:
以下は、SHOW COLUMNSコマンドの構文です。
たとえば、以下のクエリを実行すると、特定のデータベース内のテーブルのすべての列情報を取得します。
別のデータベースから、または現在のデータベースで利用できないテーブルの列情報を表示したい場合、次のクエリを使用できます。 しかし、現在のデータベースに切り替えることなく、別のデータベースからテーブルのカラムの情報を表示しました。
より多くの列情報を表示したい場合は、次のようにSHOW TABLESステートメントにFULLキーワードを追加する必要があります。
たとえば、次のSQLクエリは、mysudentdbデータベースのstudent_infoテーブルのすべての列をリストします:
実行後に、このコマンドによって結果セットに照合、特権、デフォルト、コメント列を追加できることを確認します。
MySQL EXPLAIN
EXPLAIN キーワードは DESCRIBE 文と同義であり、MySQL がどのようにクエリを実行するかの情報を取得するために使用されます。 これは、INSERT、SELECT、DELETE、UPDATE、および REPLACE クエリで動作します。 MySQL 8.0.19 以降のバージョンでは、TABLE ステートメントでも動作可能です。
例
SELECT ステートメントの実行計画を表示する場合、次のようなクエリを使用できます:
出力:
このクエリは次の情報を生成します: