MySQL
データベース
mysql5.7

データベース内のカラム一覧をSQL文を使って表示させる


はじめに


概要

SQL文(SELECT文)を使ってデータベース内に存在するカラムの定義一覧を出力する方法


背景

マイグレーションも使わず、カラム定義変更が入るたびに誰かがSQLファイルを実行する運用をしていたので、漏れが出ました。開発環境と検証環境でテーブルごとにshow table 〇〇ってやって目で確認するのもあほらしいので、データベース内のカラム定義をSELECT文で出力しました。


環境

Windows10(開発環境)/Amazon Linux(検証環境)

MySQL5.7

※information_schemaはRDBの標準規格になっているので、MySQLでなくても使えるかも。


実行したSQL

SELECT

table_name,
column_name,
ordinal_position,
column_default,
is_nullable,
data_type,
character_maximum_length
FROM
information_schema.columns
WHERE
--ここでデータベース名を指定する
table_schema = ''

information_schemaのcolumnsに問い合わせるとカラムの一覧が出力されます。

上のSQLで出力している内容は以下の通りです。

カラム名
内容

table_name
テーブル名

column_name
カラム名

ordinal_position
カラムの順番

column_default
カラムのデフォルト値

is_nullable
NULL許可か否か

data_type
データ型

character_maximum_length
長さ

ここではshow tableコマンドで表示されそうなものをピックアップして載せています。

MySQLのリファレンスには、ここに載せていない情報についても解説されていますので、気になる方はぜひご覧ください。


参考URL

MySQL5.7 information_schema colomnsテーブル