Export方法(方法は2つある) [ 環境 ] psql (PostgreSQL) 9.5.3. これを使うと、SELECTでSQLを作成し実行することができるので、例えば、テスト用に大量のテーブルを作る、大量のテーブルの設定値を一斉に変更する、とかに便利です。 区切り文字やNULL値を表す文字列とかを変えることも可能です。, '\encoding SQL-ASCII \\ SELECT relname, relnamespace FROM pg_class LIMIT 1;', -- 特定のテーブル('hoge_'で始まるテーブル)のautovacuumを無効にする, ------------------------------------------------------, *******************************************, -----------------+-----------------+-----------------, -----------------+----------------+-----------------, # pg_classテーブルの中身をCSV形式でファイル(/tmp/data.csv)出力する。, "COPY (SELECT * FROM hoge) to '/tmp/data.csv' (format csv);". これが無いときは、一旦テーブル名をファイルに出してそれを読み込みながらSQLを実行する、みたいなことをしていました。, psqlに備わっている\if、\else、\elif、\endifを使います。 そんなときには、-Xオプションを利用します。, 最後はpsqlは関係ないですが、COPYコマンドの機能を使って、ファイル出力します。 psqlでのSELECT結果は、テーブルの形に整形されて出力されるので、SELECT結果の値をパースしたい時とかには不便です。 -Aqtcオプションを利用するとシェルスクリプトとかで、実行結果だけを取得してその値をなにかに使う、という時とかにに便利です。 興味を持っていただけた方は、弊社ウェブサイトから、または私の DM にでも、お気軽にご連絡いただければと思っております!, fish だとhistory | awk '{print $1}' | sort | uniq -c | sort -nr | awk 'NR<=10 {print $2}' | cat -nです。zsh だと history -E 1 | awk '{print $4}' | sort | uniq -c | sort -nr | awk 'NR<=10 {print $2}' | cat -nらしいです↩, 前職では私が最年少で、今より低レイヤーなミドルウェアの開発をしていたため、コンソールの住人が多かったです(必ずしも一般的な傾向ではないかもしれません)↩, AppBrew では BI ツールとして主に Redash を使っています。Redash さんの自動整形機能はかなりお茶目です↩, \o, \g のいずれも、ファイル名の代わりにコマンド名を引数として渡すと、出力をそのコマンドにパイプで渡してくれます(活用できたことはない)↩, appbrewさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?, Powered by Hatena Blog 私の場合、プロンプトの表示を変えたり、alias的なものを設定することに使っています。, .psqlrcをしていると、たまに.psqlrcを使わないで実行したい時あります。 初めに こんにちは!エンジニアのid:FM_Harmonyです。 前回はgitのfetchコマンドについて、記事を投稿しました。 tech-blog.rakus.co.jp 今回はpostgreSQLの対話型ターミナル、psqlのオプションについて紹介したいと思います。 普段の業務でも、psqlコマンドの-fオプション… postgresql - 生成 - psql 出力 整形 . 最近に、PostgreSQLをよく使って、データをCSV、TSVに出力する方法をまとめました。出力したデータをテーブルに登録する方法も紹介します。コマンドまとめデータベースサーバに配置できるなら、COPY コマンドを使用する。クライアントに Postgresのテーブルにレコードごとにユニークな文字列を生成するにはどうすればよいですか? また、ファイルを編集し終えると、その結果を読み込んでクエリとして送信します。, さらに、メタコマンド \w を実行すれば、先ほど編集したクエリバッファの内容をファイルに書き込むこともできます。, つまり、エディタでクエリを編集、実行し、気に入った結果が得られるまでそれを繰り返し、最後にファイルに保存するワークフローを psql 上で終えられます。, メタコマンド \i を使って、ファイルから処理を読み込むこともできます。, メタコマンド \o を使えば、それ以降の問い合わせ結果をファイルに書き出せます。, また、\g を実行すると、直前に実行したクエリの結果を指定したファイルに書き込めます。6, できることは色々あるのですが、とりあえず format 項目だけ覚えておけば一般的なフォーマットでの整形を済ませられます:, このへんでやろうとしてた人がいたようですが、パッチ投げるところまで至っていないようです...。, AsciiDoc はこんな感じで入れたようで、Markdown 単純だし雰囲気真似ればわりと簡単かも...?7と思ったところで放置しています, 実際 Markdown の中で HTML を書けることも多く、その場合は先述した \H で済むので、実はそんなに需要がない...?, おそらく describe の頭文字でしょうか?様々な DB 内オブジェクトの情報を取得できます。ググるより手早くて便利です。, \dt を使うとテーブルの情報を見られます。テーブル名が曖昧なときは、ワイルドカード * も使えます。8, 余談:Redshift で \daS を実行すると hll というドキュメントにない関数が見えたのでオッ!と思ったんですが、実行できず...。approximate count の内部実装だけで使ってる感じなんすかね、無念...。, 実はちょっとした集計機能も psql には入っています。\crosstabview を使うと、クエリの実行結果をクロス集計できます。10, 集計の軸を表す2つのカラムと、結果を表す1つのカラム、合わせて3つのカラムからなるテーブルを出力するクエリを書けばよいです。, LIPS には1ミリも関係ないと見せかけて、先日 Redshift の RA3 インスタンス乗せ替え作業をやったときに psql をいつもより多く触った勢いで書いたものです, AppBrew では引き続き、コマンドラインが好きな人、プロダクト作りが好きな人、toC サービスが好きな人など、熱意ある人々と一緒に、最高のプロダクトやサービスを作っていきたいと考えております。 メタコマンドは、バックスラッシュ2つで区切る事ができるので、複数のメタコマンドを使うこともできます。, psqlでのSELECT結果は、テーブルの形に整形されて出力されるので、SELECT結果の値をパースしたい時とかには不便です。 2)出力フォーマットを整列させない: \a 3)タプルのみを表示する: \t 4)出力を設定する: \o '/tmp/yourOutputFile.csv' 5)あなたの質問を実行してください: :select * from YOUR_TABLE 6)出力: \o この場所にあなたのcsvファイルを見つけることができます: cd /tmp