Yuuki

Yuuki's Blog

Hacker. Code Enthusiast.
github
bilibili
twitter

PostgreSQL チートシート

環境設定#

クライアントおよびサーバーツールのインストール#

詳細は、https://www.postgresql.org/download/ リンクで指示された手順を参照してください。

(のみ) クライアント接続ツールのインストール#

# Debianオペレーティングシステム
sudo apt update
sudo apt install postgresql-client

# MacOSオペレーティングシステム
brew install libpq

サービス管理#

Linux オペレーティングシステムでは、systemctlを使用してサービスを管理します。サービス名は postgresql で、次のようなコマンドを使用できます:

# サービスの起動
systemctl status postgresql

# サービスの再起動
systemctl restart postgresql

# 設定ファイルの再読み込み
systemctl reload postgresql

# サービスの停止
systemctl stop postgresql

ユーザー管理#

-- ユーザーの作成
CREATE USER <username> WITH PASSWORD '<password>';

-- 権限の付与 (個別のデータベース)
GRANT ALL PRIVILEGES ON DATABASE <database> TO <username>;

-- 権限の付与 (個別のテーブル)
ALTER TABLE <table_name> OWNER TO <username>;

-- パスワードの変更
ALTER USER <username> WITH PASSWORD <new_password>;

PostgreSQL 組み込みのステートメント#

-- サーバー上のすべてのデータベースをリストアップ
\l
\list

-- 特定のデータベースを使用
\c <db_name>
\connect <db_name>

-- データベース内のすべてのテーブルをリストアップ
\dt

-- データベース内のすべてのテーブルとビューをリストアップ
\d
\dtvmsE

-- 指定したテーブルの構造を取得
\d <table_name>

-- SQLファイルのインポート
\i <filename>
\include <filename>

DDL (データ定義言語)#

-- データベースの作成
CREATE DATABASE mydb;

-- データベースの削除
DROP DATABASE mydb;

psql (PostgreSQL インタラクティブターミナル)#

コマンドラインで SQL 文を実行する#

psql -h <host> -d <db_name> -U <username> -d <database> -c "<sql>"

パスワードなしでコマンドラインで SQL 文を実行する#

方法 1:環境変数#

export PGPASSWORD='<password>'

設定が完了したら、通常のコマンドを実行できます。例:

方法 2:.pgpass 設定ファイル#

ユーザーのホームディレクトリ(たとえば ~/)に .pgpass ファイルを作成し、次の内容を入力します(尖括号内の内容を実際の情報に置き換えてください):

<host>:<port>:<db_name>:<username>:<password>

次に、.pgpass ファイルのパーミッションを設定し、ユーザー自身だけがファイルを読み取りおよび書き込みできるようにします:

chmod 600 "$HOME/.pgpass"

その後、パスワードなしでコマンドを実行してみてください:

psql -h <host> -d <db_name> -U <username> -c "<sql>"

また、PGPASSFILE 環境変数を設定して、カスタムパスの .pgpass を指定することもできます:

export PGPASSFILE="/path/to/.pgpass"

方法 3:pg_service.conf 設定ファイル#

ユーザーのホームディレクトリに .pg_service.conf 設定ファイルを作成し、次の内容を入力します(尖括号内の内容を実際の情報に置き換えてください):

[myservice]
host=<host>
port=<port>
dbname=<db_name>
user=<username>
password=<password>

その後、PGSERVICE 環境変数を設定して、設定ファイル内の指定された名前にします:

export PGSERVICE="myservice"

最後に、パスワードなしでコマンドを実行してみてください:

psql -c "<sql>"

注意:.pg_service.conf を使用すると、複数のサービス接続設定を保存できます。異なる設定に切り替えるには、PGSERVICE 環境変数を特定の名前に変更します。

また、PGSERVICEFILE 環境変数を設定して、カスタムパスの .pg_service.conf を指定することもできます:

export PGPASSFILE="/path/to/.pg_service.conf"
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。