テーブルのフィールド名(カラム名)を取得する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 を使う方法が適しています。
-
SQL ServerのDELETE文の使い方!基本構文から実践例まで徹底解説
SQL Server(Transact-SQL)におけるDELETE文は、テーブルから1件以上のレコードを削除するために使用されるステートメントです。 SQL ServerにおけるDELETE文の基本構文 DELETE文のシンプルな構文は以下のとおりです。 DELETE FROM テーブル名 [WHERE 条件]; また、完全な構文は以下のようになります。 DELETE [TOP (先頭行数) [PERCENT]] FROM テーブル名 [WHERE 条件]; 各パラメータの説明 テーブル名 レコードを削除したい対象となるテーブルを指定します。 WHERE 条件 省略可能です。削除対象とな
-
SQL ServerのTRUNCATE TABLEコマンドとは?構文・使い方・注意点を徹底解説
SQL ServerにおけるTRUNCATE TABLEステートメントは、テーブル内のすべてのレコード(行)を一括削除するためのコマンドです。動作はDELETEコマンドに似ていますが、WHERE句を指定できない点が大きな特徴です。 SQL ServerでのTRUNCATE TABLEの基本構文 TRUNCATE TABLE [データベース名.] [スキーマ名.] テーブル名[ WITH (PARTITIONS (パーティション番号 | パーティション番号 TO パーティション番号) ) ]; 各パラメータの意味 データベース名 省略可能です。指定する場合は、対象テーブルが存在するデータベースの