メインコンテンツへスキップ

Dockerを利用したPostgreSQLの練習環境の構築、基本的なコマンドのメモ

··895 文字·2 分·
プログラミング SQL PostgreSQL DB
著者
Admin
目次

Dockerで環境構築
#

postgres公式のdockerイメージを利用する。
🔗https://hub.docker.com/_/postgres/

docker run --name test-postgres  -p 127.0.0.1:55552:5432  -e POSTGRES_PASSWORD=password -d postgres

でpostgresのdockerコンテナを作成&起動。

コンテナの5432ポートをホストの55552にマップしている。

後はpsqlで接続して好きなことをすればok。

一応書いておくが、コンテナが止まった際に再スタートしたい場合はdocker ps -aでコンテナ一覧からpostgresのコンテナを見つけ出して、コンテナのIDをコピーして、docker start CONTAINER_IDで起動できる。

psqlメモ
#

接続
#

psql -h localhost -U postgres -d postgres -p 55552

-h: host -d: データベース -p: ポート

便利
#

\xでクエリの結果を読みやすい形式で表示する設定をOnOffできる。

基本的な情報を取得
#

+を後ろにつけると詳細表示。

  • \d: テーブル, view, sequence一覧
    \d table_nameで個別のテーブルを詳細表示。
  • \l: DB一覧
  • \dt: テーブル一覧

\?で一覧が出てくるので一度確認しておいたほうが良い。

ローカルのSQLファイルを読み込んで実行
#

-f, --fileオプションで可能

psql -h localhost -U postgres -d postgres -p 55552 -f run.sql

もしくは接続後にシェル上で\i, \irを使うこともできる。(こっちの方が便利かな?)
詳細はシェルのhelp(\?)参照。

トランザクション&ロールバック
#

練習でもDBがめちゃくちゃになると面倒なのでトランザクションを張りたいときがある。

🔗https://www.postgresql.org/docs/current/tutorial-transactions.html
🔗BEGIN
🔗COMMIT
🔗ROLLBACK

一応簡単に説明しておくと、

BEGIN; -- トランザクション開始

INSERT ... ; -- 書き込み

SELECT ... -- 書き込み結果確認

-- あ、ミスってた。 もとに戻したい。

ROLLBACK; -- BEGIN後の変更を全て破棄(BEGIN時の状態にロールバック)

といった使い方ができる。

変更を確定させる場合COMMIT;してあげればok。

クエリの実行時間計測
#

\timing

で計測をオンにできる。

オンの状態でクエリを普通に実行すれば勝手に計測してくれる。

Related

JSX(React)でテキストのコピーを禁止する
··513 文字·2 分
プログラミング React JSX
久しぶりに使ったことのないプログラミング言語(Julia)を学習して気がついたこと
·1623 文字·4 分
プログラミング 学習 Julia Plots.jl
ブログや学習メモを書くことのメリット
··788 文字·2 分
ブログ運用 学習 プログラミング 数学 オートクライン効果 アウトプット