【PostgreSQL】psql・pgAdminの使い方の基本

PostgreSQL

こんにちは、かつコーチです。

前回はPostgreSQLのインストールと初期設定を解説しました。

今回はPostgreSQLを日常的に操作するための2つのツール、psql(コマンドラインクライアント)とpgAdmin(GUIクライアント)の基本的な使い方を解説します。

どちらか一方だけでも運用は可能ですが、両方の特徴を知っておくと、場面に応じて使い分けられるようになります。

psqlとpgAdmin、どちらを使うべきか

2つのツールの特徴を比較する

項目psqlpgAdmin
操作方法コマンドラインGUI(ブラウザ / デスクトップアプリ)
学習コストコマンドを覚える必要がある直感的に操作できる
スクリプト化シェルスクリプトに組み込みやすい組み込みにくい
テーブル構造の可視化\dコマンドでテキスト表示ER図やツリー表示で視覚的に確認できる
動作の軽さ軽量やや重め

どちらを選べばいいか:判断軸

  • 日常的な検証や、SQLをスクリプトに組み込みたい → psql
  • テーブル構造を視覚的に把握したい、GUIに慣れている → pgAdmin
  • 本格的に運用するなら → 両方使えるようにしておくのが理想(開発時はpsql、構造確認や共有はpgAdmin、という使い分けが実務では多い)

初中級者のうちは、まずpsqlの基本コマンドに慣れておくことを優先してください。

psqlのコマンドはSSH接続先のサーバーでも同じように使えるため、汎用性が高いスキルになります。

psqlの基本操作

手順1:接続する

前回作成したロールとデータベースで接続します。

psql -U appuser -d appdb -h localhost

手順2:メタコマンド(\から始まるコマンド)を覚える

psqlには、SQL文とは別に「メタコマンド」と呼ばれる\から始まる便利なコマンド群があります。

-- データベース一覧を表示
\l

-- 接続先データベースを切り替える
\c appdb

-- テーブル一覧を表示
\dt

-- テーブルの構造(カラム定義)を確認する
\d members

-- 現在の接続情報を確認する
\conninfo

-- psqlを終了する
\q

\d テーブル名は実務でも非常によく使うコマンドです。

「このテーブルにどんなカラムがあったか忘れた」というときに、CREATE TABLE文を探しに行くより早く確認できます。

手順3:SQLを実行する

メタコマンド以外は、通常のSQL文をそのまま入力できます。

SELECT * FROM members LIMIT 5;

SQL文の末尾には、MySQLと同じくセミコロン(;)が必要です。

セミコロンを付け忘れると、次の行の入力を待ち続ける状態(プロンプトがappdb-#に変わる)になるので、その場合はセミコロンを追加してEnterを押せば実行されます。

pgAdminの基本操作

手順1:サーバー接続を登録する

pgAdminを起動したら、左側の「Servers」を右クリックし、「Register」→「Server」を選びます。

「Connection」タブで、Host(localhost)、Port(5432)、Username(appuser)、Password(apppassword)を入力して保存すれば接続完了です。

手順2:テーブル構造をツリー表示で確認する

左側のツリーから「Databases」→「appdb」→「Schemas」→「public」→「Tables」とたどると、テーブルの一覧が表示されます。

テーブルを選択して「Properties」タブを開けば、カラムの型や制約をGUI上で確認できます。

\dコマンドで文字ベースの情報を確認するより、初学者にとっては視覚的に把握しやすいはずです。

手順3:Query Toolでクエリを実行する

上部メニューの「Tools」→「Query Tool」を開くと、SQLエディタが表示されます。

ここにSQL文を入力し、実行ボタン(再生アイコン)またはF5キーで実行すると、下部に結果がテーブル形式で表示されます。

SELECT name, email FROM members WHERE created_at >= '2026-01-01';

結果をCSVでエクスポートする機能もあるため、簡易的なデータ確認やちょっとした集計結果の共有にも便利です。

つまずきやすいポイント:日本語の文字化け

コンソールでの文字化け

私が初めてpsqlで日本語データを扱ったとき、ターミナル上で日本語が正しく表示されず、文字化けに悩まされたことがあります。

❌ Before:ターミナルのエンコーディング設定を確認せずに接続する

psql -U appuser -d appdb -h localhost
# SELECT結果の日本語部分が「????」や崩れた文字で表示される

原因を調べたところ、ターミナルアプリの文字エンコーディング設定がUTF-8になっていないことが原因でした。

✅ After:ターミナルのエンコーディングをUTF-8に統一する

PostgreSQL自体はデータベース作成時にUTF8エンコーディングを指定していれば内部的には問題ありません。

-- データベース作成時にエンコーディングを明示する
CREATE DATABASE appdb OWNER appuser ENCODING 'UTF8';

表示側の問題であることが多いため、ターミナルアプリ(Terminal.app、iTerm2など)の設定でエンコーディングがUTF-8になっているかを確認しましょう。

pgAdminを使う場合はブラウザ・アプリ側がUTF-8前提で動くため、この問題にはあまり遭遇しません。

コンソールで日本語が崩れたときは、まずエンコーディング設定を疑う、と覚えておくと解決が早くなります。

まとめ

この記事のポイント

  • psqlはコマンドライン、pgAdminはGUIのクライアントで、それぞれ得意分野が異なる
  • psqlの\d(テーブル構造確認)、\l(データベース一覧)、\dt(テーブル一覧)は特によく使う
  • pgAdminはツリー表示とQuery Toolで、視覚的にテーブル構造やクエリ結果を確認できる
  • コンソールでの日本語文字化けは、多くの場合ターミナル側のエンコーディング設定が原因

次に読むべき記事

環境構築とツールの使い方を押さえたところで、次はPostgreSQLならではのデータ型を見ていきましょう。

次回はPostgreSQL固有のデータ型(配列型・範囲型など)を解説します。

→ 次の記事:PostgreSQL固有のデータ型(配列型・範囲型など)

タグ: PostgreSQL, 初心者向け, 環境構築

タイトルとURLをコピーしました