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

MySQLでテーブルのカラム名(列名)を取得する構文とは?

MySQLでは、information_schema.columns テーブルを参照することで、指定したテーブルのカラム名(列名)を簡単に取得できます。データベースの構造を確認したい場合や、動的にカラム情報を取得したいアプリケーションを開発する際に非常に便利な方法です。

カラム名を取得する基本構文

テーブルのカラム名を取得するには、以下の構文を使用します。

SELECT column_name FROM information_schema.columns
WHERE table_schema = 'データベース名' AND table_name = 'テーブル名';

table_schema にはデータベース名を、table_name には対象のテーブル名を指定します。

サンプルテーブルの作成

まず、動作確認用に以下のようなテーブルを作成します。

mysql> CREATE TABLE DemoTable
(
    EmployeeId int,
    EmployeeFirstName varchar(20),
    EmployeeLastName varchar(20),
    EmployeeAge int,
    EmployeeCountryName varchar(40),
    IsMarried tinyint(1),
    isActive ENUM('ACTIVE','INACTIVE')
);
Query OK, 0 rows affected (0.65 sec)

このテーブルには、従業員IDや氏名、年齢、国名、婚姻状況、アクティブ状態など、7つのカラムが定義されています。

実際にカラム名を取得してみる

次に、「web」データベース内にある DemoTable のカラム名を取得するクエリを実行します。

mysql> SELECT column_name FROM information_schema.columns
    WHERE table_schema='web' AND table_name='DemoTable';

実行結果

+---------------------+
| COLUMN_NAME         |
+---------------------+
| EmployeeId          |
| EmployeeFirstName   |
| EmployeeLastName    |
| EmployeeAge         |
| EmployeeCountryName |
| IsMarried           |
| isActive            |
+---------------------+
7 rows in set (0.00 sec)

このように、テーブルに定義されているすべてのカラム名が一覧形式で取得できます。

補足:SHOW COLUMNSを使う方法

より手軽な方法として、SHOW COLUMNS FROM テーブル名;DESCRIBE テーブル名; を使ってもカラム情報を確認できます。ただし、これらのコマンドは型やキー情報なども一緒に表示されるため、カラム名だけをプログラムで処理したい場合は information_schema.columns を使う方法がおすすめです。

  1. MySQLで列の部分文字列(サブストリング)を取得する方法

    MySQLのSUBSTR()関数を使って列の部分文字列を抽出するMySQLでは、SUBSTR()関数を使用することで、テーブルの列から任意の位置の部分文字列(サブストリング)を簡単に抽出できます。この関数は、開始位置と取得する文字数を指定するだけで動作し、文字列の先頭や中間、末尾付近のデータだけを取り出したい場合に非常に便利です。以下に、実際の手順を順番に解説していきます。1. サンプルテーブルを作成するまず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable-> (-> Title text-> );Query OK, 0

  2. MySQLで一部の列名を除外してテーブルの列名を表示する方法

    MySQLでテーブルの列名一覧を取得する際、特定の列だけを除外したいケースがあります。そのような場合は、システムテーブルinformation_schema.COLUMNSとNOT IN句を組み合わせることで、簡単に実現できます。サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。顧客ID、氏名、年齢、国名、結婚有無を持つシンプルなテーブルです。mysql> create table DemoTable780 ( CustomerId int, CustomerName varchar(100), CustomerAge int, Custo