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

既存のテーブルの列一覧を取得する方法:SHOW COLUMNSの代わりに使えるMySQLのステートメント

SHOW COLUMNSの代替として利用できるステートメント

はい、DESCRIBE または EXPLAIN ステートメントを使用することで、SHOW COLUMNS の代わりに既存テーブルの列(カラム)の一覧を取得できます。これら3つのステートメントは実質的に同義であり、いずれも同じ結果セットを返します。

DESCRIBE / EXPLAIN の使用例

以下の例では、「Employee」テーブルに対して DESCRIBE および EXPLAIN ステートメントを実行しています。SHOW COLUMNS を実行した場合とまったく同じ結果が得られることが確認できます。

mysql> DESCRIBE Employee\G
*************************** 1. row ***************************
  Field: Id
   Type: int(11)
   Null: YES
    Key:
Default: NULL
  Extra:
*************************** 2. row ***************************
  Field: Name
   Type: varchar(20)
   Null: YES
    Key:
Default: NULL
  Extra:
2 rows in set (0.05 sec)

mysql> Explain Employee\G
*************************** 1. row ***************************
  Field: Id
   Type: int(11)
   Null: YES
    Key:
Default: NULL
  Extra:
*************************** 2. row ***************************
  Field: Name
   Type: varchar(20)
   Null: YES
    Key:
Default: NULL
  Extra:
2 rows in set (0.04 sec)

各ステートメントの特徴と使い分け

DESCRIBE tbl_nameSHOW COLUMNS FROM tbl_nameEXPLAIN tbl_name と完全に同等です。取得できる情報は次の通りです。

  • Field: 列名
  • Type: データ型
  • Null: NULL値を許容するかどうか
  • Key: 主キー(PRI)、ユニークキー(UNI)などのインデックス情報
  • Default: デフォルト値
  • Extra: AUTO_INCREMENTなどの追加情報

なお、より詳細な列情報が必要な場合は、information_schema.COLUMNS テーブルをSELECT文で参照する方法もあります。照合順序や権限など、より細かいメタデータを条件付きで取得したい場合に有効です。

  1. MySQLで複数の列から最小値を取得する方法【LEAST関数の使い方】

    MySQLでは、LEAST()関数を使うことで、複数の列(カラム)の値の中から最小値を簡単に取得できます。この記事では、実際にテーブルを作成し、データを挿入したうえで、LEAST関数の具体的な使い方を確認していきます。サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable756 ( Value1 int, Value2 int, Value3 int ); Query OK, 0 rows affected (0.62 sec)レコードの挿入次に、INSERTコマンドを使ってテーブルにレコードを挿入します。my

  2. MySQLでテーブル内の空(EMPTY)・NULL列の件数を調べる方法

    はじめにMySQLでは、CASE式とSUM関数、UNION ALLを組み合わせることで、テーブル内に存在するNULL値と空文字列()それぞれの件数を一度に集計できます。本記事では、サンプルテーブルを作成しながら、具体的な手順を解説します。1. サンプルテーブルの作成まず、以下のようにCREATE TABLE文でテーブルを作成します。mysql> create table DemoTable781 ( Name varchar(100) ); Query OK, 0 rows affected (0.66 sec)2. テストデータの挿入続いて、INSERT文を使って空文字列とNUL