PostgreSQL よく使うコマンド

よく使うコマンドを記載します。


PostgreSQLの起動、停止

PostgreSQLの起動

pg_ctl start -D "C:\Program Files\PostgreSQL\11\data"

PostgreSQLの停止

pg_ctl stop -D "C:\Program Files\PostgreSQL\11\data"

PostgreSQLの起動確認

pg_ctl status -D "C:\Program Files\PostgreSQL\11\data"

psql ログイン

psql -U <USERNAME> -d <DB_NAME> -h <HOST> -p <PORT>

例)
psql -U postgres -d postgres -h localhost -p 5432

psql ログアウト

\q


ユーザーロール一覧

\du

データベース一覧

\l

現在のデータベースを確認

select current_database();

データベース切り替え

\c <DB_NAME>

スキーマ一覧

\l

現在のスキーマを確認

select current_database();

スキーマ切り替え

set search_path = <SCHEMA_NAME>;

PostgreSQL psqlでログインするコマンド パスワード省略(パスワードあり/なし)

よく使うのでメモ。

コマンドラインからpsqlに接続する(パスワードあり)

パターン1

psql “postgresql://{ユーザー名}:{パスワード}@{ホスト名}:{ポート番号}/{データベース名}”

パターン2

psql “user={ユーザー名} password={パスワード} host={ホスト名} port={ポート番号} dbname={データベース名}”


コマンドラインからpsqlに接続する(パスワードなし)

パターン1

psql “postgresql://{ユーザー名}@{ホスト名}:{ポート番号}/{データベース名}”

パターン2

psql “user={ユーザー名} host={ホスト名} port={ポート番号} dbname={データベース名}”

パターン3

psql -U {ユーザー名} -h {ホスト名} -p {ポート番号} -d {データベース名}


psqlからログアウトする

\q

PostgreSQL psqlで引数とSQLファイルを指定して実行する

psqlとはPostgreSQLのターミナル型SQLクライアントです。

引数に指定した値をSQLファイルの変数にバインドします。

psqlで引数とSQLファイルを指定して実行する サンプルコード

sample.sql

実行するSQLファイル、”:変数”の箇所を置き換えます。

select :foo,
       :bar,
       :hoge;

p_exec_file.sh

実行するshellです。psqlを呼び出し、”-f”オプションでSQLファイルを指定し、”-v”オプションで引数名と値を設定します。”–echo-all”は実行したSQLを結果と一緒に出力します。

#!/bin/bash

DB_USER="{user_name}"
DB_PWD="{password}"
DB_SERVER="{db_server_url}"
DB_PORT="{db_port}"
DB_NAME="{db_name}"

psql \
    -d "postgresql://$DB_USER:$DB_PWD@$DB_SERVER:$DB_PORT/$DB_NAME" \
    -f "sample.sql" \
    -v foo="now()" \
    -v bar="1" \
    -v hoge="'test_str'" \
    --echo-all


実行結果

p_exec_file.shを実行します。実行したSQL文と結果が出力されます。”foo”に”now()”、”bar”に”1″(数値)、”hoge”に”test_str”(文字)が設定されています。

$ ./p_exec_file.sh
select :foo,
       :bar,
       :hoge;
              now              | ?column? | ?column?
-------------------------------+----------+----------
 2019-12-28 16:10:25.343578+09 |        1 | test_str
(1 行)