MySQLを使用して、クエリ結果を整形する方法を解説します。
コマンド末尾に \G
や INTO OUTFILE
といった構文を付加することで、
縦表示に切り替えたり CSV ファイルに出力することができます。
⇒ MySQL 8 インストール手順 (CentOS)
⇒ MySQL 8 インストール手順 (Ubuntu)
MySQL の縦表示には「\G」オプション
テスト用に users
テーブルを用意しました。
「ユーザー一覧」を想定した内容で、簡易的に5カラムとしています。
MySQL コマンドで通常通りにを実行すると、横長の表形式で出力されます。
> SELECT * FROM users;
画面に収まる場合は問題ありませんが、カラム数が増えると入り切りません。
1行に収まらずに折り返してしまい、非常に見づらい表となってしまいます。
ここで、末尾の文字を ;
から \G
に変えると縦表示が可能です。
> SELECT * FROM users\G
カラムごとの結果が縦に並ぶため、文字が折り返すこともなく見やすくなります。
横に長いテーブルを確認する場合には、特に重宝するオプションです。
「INTO OUTFILE」で MySQL の結果を CSV 出力
SELECT した結果を、CSV ファイルとして出力することができます。
SELECT 文の最後に INTO OUTFILE <ファイル名>
を付け足せば OK です。
> SELECT * FROM users INTO OUTFILE '/tmp/users.txt';
指定した場所にファイルが出力されました。
OS によっては /tmp/systemd-private-***
等のサブディレクトリに出力されることもあります。
> cat /tmp/users.txt
1 Database Taro taro-test@example-database.com 2018-09-01 11:22:33 0
2 Database Jiro jiro-test@example-database.com 2018-09-01 15:00:00 0
3 Database Hanako hanako-test@example-database.com 2018-09-01 19:00:00 0
FIELDS
オプションで区切り文字を指定できます。
カンマを指定することで、CSV ファイルとしての出力が可能です。
> SELECT * FROM uses INTO OUTFILE '/tmp/users.csv' FIELDS TERMINATED BY ',';
SQL クエリの結果を less で確認する
MySQL で実行したクエリ結果を less
で確認する方法があります。
文字列検索や矩形選択を行いたい場合に便利です。
MySQL サーバーに接続した状態で pager
コマンドを実行して有効します。
正しく設定された場合は PAGER set to ***
と表示されます。
> pager less -S
PAGER set to 'less -S'
この状態で SELECT などを実行すると、less が起動して結果を確認できます。
> SELECT * FROM users;
画像では分かりづらいですが、通常の less
と同じ操作でスクロールや文字列検索が行なえます。
元に戻すときは nopager
コマンドを実行します。
> nopager;
まとめ
MySQL のクエリ結果を整形する方法、CSV 出力する方法について解説しました。
\G
や INTO OUTFILE
などのオプションを使うだけで、出力が扱いやすくなります。
大規模テーブルを扱う際などに、ぜひご活用ください。
【関連記事】
⇒ MySQL が遅いときの調査方法
⇒ curl の便利なオプションを解説
⇒ MySQL 8 インストール手順 (CentOS)
⇒ MySQL 8 インストール手順 (Ubuntu)
⇒ jq コマンドで JSON の整形や加工を行う
⇒ jq コマンド応用編