1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQL のテーブルカラム情報を TSV で取得する

Last updated at Posted at 2016-10-19

MySQL は DB スキーマに関する情報を information_schema DB から参照でき、カラムに関する情報は columns テーブルから参照できます。

なので、例えば以下のようなクエリでカラムに関する情報を一覧して取得できます。

SELECT *
FROM `information_schema`.`columns`
WHERE `table_schema` = "任意DB名"
AND `table_name` = "任意テーブル名";

このクエリでは以下のような情報を取得できます。
必要に応じて SELECT に指定するといいと思います。
(よく使いそうなフィールドだけ太字にしました)

  • TABLE_CATALOG
  • TABLE_SCHEMA: DB名
  • TABLE_NAME: テーブル名
  • COLUMN_NAME: カラム名
  • ORDINAL_POSITION: スキーマ上のカラム位置
  • COLUMN_DEFAULT: デフォルト値
  • IS_NULLABLE: NULL許容
  • DATA_TYPE: データ型
  • CHARACTER_MAXIMUM_LENGTH: 最大長
  • CHARACTER_OCTET_LENGTH
  • NUMERIC_PRECISION
  • NUMERIC_SCALE
  • DATETIME_PRECISION
  • CHARACTER_SET_NAME
  • COLLATION_NAME
  • COLUMN_TYPE
  • COLUMN_KEY
  • EXTRA
  • PRIVILEGES: 権限
  • COLUMN_COMMENT: コメント
  • GENERATION_EXPRESSION

コマンドラインで TSV として取得する

上記のクエリを使って、コマンドラインからカラム名とそのコメントを TSV で取得してみます。

mysql -B -e 'SELECT `COLUMN_NAME` ,`COLUMN_COMMENT` FROM `information_schema`.`columns` WHERE `table_schema` = "任意DB名" AND `table_name` = "任意テーブル名";'

-B は TSV で出力するためのオプションです。

実行結果 (TSV):

COLUMN_NAME	COLUMN_COMMENT
id	ID
name	名前
price	価格
created	作成日時

これに限った話ではないですが TSV 文字列はそのままエクセルにペーストできるので何かと便利 :ok_woman:
(こんなことをしないでも Sequel Pro とかでクエリ結果を CTRL + C すると TSV としてコピーできる)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?