今回はMySQL用の備忘にたまに使うテーブルなどの定義取得用のSQLをまとめておきます。
MySQLではデータベース=スキーマと考えて良いみたいなので、指定に必要な場合はDB_NAMEと記載します。
テーブルを一覧で取得する方法
テーブル名の一覧のみ取得する場合(「DB_NAME」を取得対象に変更、引用符なし)
Show tables From DB_NAME;
テーブル情報の一覧を取得する場合(「DB_NAME」を取得対象に変更、引用符あり)
Select * From information_schema.tables I1 Where I1.table_schema = 'DB_NAME' And I1.table_type = 'BASE TABLE';
TABLE_TYPEの条件を変更するとビューの一覧が取得できます
Select * From information_schema.tables I1 Where I1.table_schema = 'DB_NAME' And I1.table_type = 'VIEW';
カラムを一覧で取得する方法
テーブル名を指定して取得する場合
Show columns From TABLE_NAME;
スキーマを指定してテーブルとカラム情報の一覧を取得する場合
Select * From information_schema.columns I1 Where I1.table_schema = 'DB_NAME';
インデックスを一覧で取得する方法
テーブル名を指定して取得する場合
Show index From TABLE_NAME;
スキーマを指定してテーブルとカラム、インデックス情報の一覧を取得する場合
Select * From information_schema.statistics I1 Where I1.table_schema = 'DB_NAME';
表示項目を絞ると
Select table_name,index_name,column_name,seq_in_index,non_unique From information_schema.statistics I1 Where I1.table_schema = 'DB_NAME';
以上