MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

テーブルのフィールド名(カラム名)を取得するSQLコマンドの使い方

テーブルのフィールド名を返すSQLコマンドとは

MySQLでテーブルのフィールド名(カラム名)を確認したい場合、主に2つの方法があります。ひとつは DESC コマンドを使う方法、もうひとつは information_schema.columns テーブルから column_name を取得する方法です。

方法1:DESCコマンドを使用する

最も手軽なのが DESC コマンドです。書式は以下の通りです。

desc テーブル名;

このコマンドを実行すると、フィールド名だけでなく、データ型、NULL許容、キー情報、デフォルト値なども合わせて表示されます。

方法2:INFORMATION_SCHEMA.COLUMNSを利用する

より柔軟にフィールド名だけを抽出したい場合は、information_schema.columns テーブルに対してSELECT文を実行します。書式は以下の通りです。

select column_name from information_schema.columns where table_name = 'テーブル名';

実行例

ここでは、「ExtractCommentDemo1」というテーブルを例に、両方の構文を見ていきましょう。

DESCコマンドを使った場合

mysql> desc ExtractCommentDemo1;

実行すると、以下のようにテーブルのフィールド情報が一覧で表示されます。

+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| UserId   | int(11)      | YES  |     | NULL    |       |
| UserName | varchar(200) | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

Field 列に「UserId」「UserName」というフィールド名が表示されていることがわかります。

INFORMATION_SCHEMA.COLUMNSを使った場合

mysql> select column_name from INFORMATION_SCHEMA.COLUMNS
    -> where table_name = 'ExtractCommentDemo1';

こちらを実行すると、フィールド名のみがシンプルに出力されます。

+-------------+
| COLUMN_NAME |
+-------------+
| UserId      |
| UserName    |
+-------------+
2 rows in set (0.00 sec)

どちらを使うべきか

テーブル全体の構造をざっと確認したいなら DESC コマンドが便利です。一方、プログラム内でフィールド名の一覧だけを動的に取得したい場合や、特定の条件(データベース名やスキーマ名など)を組み合わせて検索したい場合は、information_schema.columns を使う方法が適しています。

  1. SQL ServerのDELETE文の使い方!基本構文から実践例まで徹底解説

    SQL Server(Transact-SQL)におけるDELETE文は、テーブルから1件以上のレコードを削除するために使用されるステートメントです。 SQL ServerにおけるDELETE文の基本構文 DELETE文のシンプルな構文は以下のとおりです。 DELETE FROM テーブル名 [WHERE 条件]; また、完全な構文は以下のようになります。 DELETE [TOP (先頭行数) [PERCENT]] FROM テーブル名 [WHERE 条件]; 各パラメータの説明 テーブル名 レコードを削除したい対象となるテーブルを指定します。 WHERE 条件 省略可能です。削除対象とな

  2. SQL ServerのTRUNCATE TABLEコマンドとは?構文・使い方・注意点を徹底解説

    SQL ServerにおけるTRUNCATE TABLEステートメントは、テーブル内のすべてのレコード(行)を一括削除するためのコマンドです。動作はDELETEコマンドに似ていますが、WHERE句を指定できない点が大きな特徴です。 SQL ServerでのTRUNCATE TABLEの基本構文 TRUNCATE TABLE [データベース名.] [スキーマ名.] テーブル名[ WITH (PARTITIONS (パーティション番号 | パーティション番号 TO パーティション番号) ) ]; 各パラメータの意味 データベース名 省略可能です。指定する場合は、対象テーブルが存在するデータベースの