裏MySQLクエリー入門(7) 基礎編5 InformationSchema

 InformationSchemaとは、テーブル名やカラム名などのシステム情報をテーブルの形でみせるシステムテーブルでSQLでいろいろ情報を取得できます。unixで言うところのprocシステムですね。SQLでシステム情報にアクセスできることで、システム情報と既存のテーブルをJOINしたりすることにより、出来ることがぐっと広がります。以下一例を出します。

  • 都道府県テーブルのプライマリキーのカラムを取得
SELECT COLUMN_NAME 
FROM information_schema.`COLUMNS` 
WHERE TABLE_SCHEMA='DB名' 
  AND TABLE_NAME='pref' 
  AND COLUMN_KEY='PRI'
  • 都道府県テーブルのプライマリキー以外のカラムを取得
SELECT COLUMN_NAME 
FROM information_schema.`COLUMNS` 
WHERE TABLE_SCHEMA='DB名' 
  AND TABLE_NAME='pref' 
  AND COLUMN_KEY<>'PRI'