這份清單收錄了 PostgreSQL 的互動式命令列工具 psql 中,最常用的實用指令與範例,方便快速查找與日常使用。


🔄 連線與登入

psql -U <使用者名稱> -d <資料庫名稱>       # 基本登入方式
psql -U yamuser -d yamagent

psql -U <使用者名稱> -h <主機> -p <port> -d <資料庫>
psql -U yamuser -h localhost -p 5432 -d yamagent

📚 資料庫操作

\l                            -- 列出所有資料庫
CREATE DATABASE dbname;      -- 建立資料庫
DROP DATABASE dbname;        -- 刪除資料庫(⚠️ 無法復原)

🧑‍💻 使用者與權限

\du                           -- 列出所有使用者與權限
CREATE USER username WITH PASSWORD 'pass';  -- 建立新使用者
ALTER ROLE username CREATEDB;               -- 給予建資料庫的權限
GRANT ALL PRIVILEGES ON DATABASE db TO user;-- 指定使用者全權限

🗂️ Schema 與 Table 操作

\dn                           -- 列出所有 schema
CREATE SCHEMA schema_name;   -- 建立 schema
DROP SCHEMA schema_name CASCADE;

\dt                           -- 列出目前 schema 下的所有 table
\dt schema_name.*             -- 指定列出某個 schema 的 table
\d table_name                 -- 查看資料表結構
SELECT * FROM table_name;     -- 查詢所有資料

🧠 實用查詢

SELECT version();                         -- 顯示 PostgreSQL 版本
SELECT current_database();                -- 顯示當前資料庫
SELECT current_user;                      -- 顯示當前使用者
SELECT * FROM pg_stat_activity;          -- 查看所有連線活動
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'target_db';

📦 匯出與匯入資料(在 shell 執行)

pg_dump -U yamuser -d yamagent > backup.sql       # 匯出
psql -U yamuser -d yamagent < backup.sql          # 匯入

🏃 快捷指令

\c dbname                -- 切換資料庫
\q                       -- 離開 psql
\! clear                 -- 清空螢幕(或 Ctrl + L)

🛠️ 備註與建議

  • template1 / template0 是系統內建資料庫,請勿刪除
  • 建議使用 postgres 使用者做初始化設定,開發用帳號用 yamuser 這類自訂帳號
  • 刪資料庫或 schema 時請三思,建議先備份