PostgreSQL/ヒアドキュメンとpsqlでSQLを実行する方法
の編集
Top
/
PostgreSQL
/
ヒアドキュメンとpsqlでSQLを実行する方法
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
PostgreSQL/template0とtemplate1の違いについて
#navi(../) * PostgreSQLでヒアドキュメンとpsqlでSQLを実行する方法 [#a5f6e2f0] シェルスクリプトにSQLを記述してPostgreSQLを操作したい事がありますよね。~ 本資料では、ヒアドキュメントを使用してSQLを実行してみたいと思います。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 関連資料 [#b13d2281] -[[コマンドラインからSQLを実行する方法>PostgreSQL/コマンドラインからSQLを実行する方法]] -[[PostgreSQLでファイル内のSQLと実行結果を一緒に出力する方法>PostgreSQL/ファイル内のSQLと実行結果を一緒に出力する方法]] -[[ヒアドキュメント内の変数を展開しない方法>http://linux.just4fun.biz/%E9%80%86%E5%BC%95%E3%81%8D%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88/%E3%83%92%E3%82%A2%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E5%86%85%E3%81%AE%E5%A4%89%E6%95%B0%E3%82%92%E5%B1%95%E9%96%8B%E3%81%97%E3%81%AA%E3%81%84%E6%96%B9%E6%B3%95.html]] -[[ヒアドキュメントをファイルに出力する方法>http://linux.just4fun.biz/%E9%80%86%E5%BC%95%E3%81%8D%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88/%E3%83%92%E3%82%A2%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%82%92%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.html]] * ヒアドキュメントを使用したシェルスクリプトを作成し実行してみる [#ca194afe] 以下に記したシェルスクリプトを使用し実行してみます。 ** 使用したシェルスクリプト [#cda7844b] #ref(sql.sh) #!/bin/bash psql <<_EOT SELECT version(); CREATE DATABASE sakura; \c sakura CREATE TABLE tbl (a INT, b INT); INSERT INTO tbl SELECT generate_series(1,100), generate_series(101,200); SELECT COUNT(*) FROM tbl; SELECT AVG(a), AVG(b) FROM tbl; DROP TABLE tbl; _EOT 上記のシェルスクリプトはpsqlコマンドに対し、_EOTから_EOTまでの文字列(SQL)を流し込みます。~ ヒアドキュメントに関しては、上記の関連資料のリンクを参照してください。 ** 実行結果 [#o00c8999] 上記のスクリプトを起動した出力結果です。~ 最後に作成したデータベースをドロップしています。 -bash-4.1$ chmod +x sql.sh -bash-4.1$ ./sql.sh version ------------------------------------------------------------------------------------------------------------------ PostgreSQL 8.4.13 on x86_64-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit (1 行) CREATE DATABASE データベース "sakura" に接続しました。. CREATE TABLE INSERT 0 100 count ------- 100 (1 行) avg | avg ---------------------+---------------------- 50.5000000000000000 | 150.5000000000000000 (1 行) DROP TABLE -bash-4.1$ dropdb sakura #htmlinsertpcsp(db-btm.html,db-sp.html)
タイムスタンプを変更しない
#navi(../) * PostgreSQLでヒアドキュメンとpsqlでSQLを実行する方法 [#a5f6e2f0] シェルスクリプトにSQLを記述してPostgreSQLを操作したい事がありますよね。~ 本資料では、ヒアドキュメントを使用してSQLを実行してみたいと思います。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 関連資料 [#b13d2281] -[[コマンドラインからSQLを実行する方法>PostgreSQL/コマンドラインからSQLを実行する方法]] -[[PostgreSQLでファイル内のSQLと実行結果を一緒に出力する方法>PostgreSQL/ファイル内のSQLと実行結果を一緒に出力する方法]] -[[ヒアドキュメント内の変数を展開しない方法>http://linux.just4fun.biz/%E9%80%86%E5%BC%95%E3%81%8D%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88/%E3%83%92%E3%82%A2%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E5%86%85%E3%81%AE%E5%A4%89%E6%95%B0%E3%82%92%E5%B1%95%E9%96%8B%E3%81%97%E3%81%AA%E3%81%84%E6%96%B9%E6%B3%95.html]] -[[ヒアドキュメントをファイルに出力する方法>http://linux.just4fun.biz/%E9%80%86%E5%BC%95%E3%81%8D%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88/%E3%83%92%E3%82%A2%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%82%92%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.html]] * ヒアドキュメントを使用したシェルスクリプトを作成し実行してみる [#ca194afe] 以下に記したシェルスクリプトを使用し実行してみます。 ** 使用したシェルスクリプト [#cda7844b] #ref(sql.sh) #!/bin/bash psql <<_EOT SELECT version(); CREATE DATABASE sakura; \c sakura CREATE TABLE tbl (a INT, b INT); INSERT INTO tbl SELECT generate_series(1,100), generate_series(101,200); SELECT COUNT(*) FROM tbl; SELECT AVG(a), AVG(b) FROM tbl; DROP TABLE tbl; _EOT 上記のシェルスクリプトはpsqlコマンドに対し、_EOTから_EOTまでの文字列(SQL)を流し込みます。~ ヒアドキュメントに関しては、上記の関連資料のリンクを参照してください。 ** 実行結果 [#o00c8999] 上記のスクリプトを起動した出力結果です。~ 最後に作成したデータベースをドロップしています。 -bash-4.1$ chmod +x sql.sh -bash-4.1$ ./sql.sh version ------------------------------------------------------------------------------------------------------------------ PostgreSQL 8.4.13 on x86_64-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit (1 行) CREATE DATABASE データベース "sakura" に接続しました。. CREATE TABLE INSERT 0 100 count ------- 100 (1 行) avg | avg ---------------------+---------------------- 50.5000000000000000 | 150.5000000000000000 (1 行) DROP TABLE -bash-4.1$ dropdb sakura #htmlinsertpcsp(db-btm.html,db-sp.html)
テキスト整形のルールを表示する
添付ファイル:
sql.sh
681件
[
詳細
]