PostgreSQLの使い方
PostgreSQL は、標準仕様への対応が強く、JSON データ型や信頼性の高いトランザクションなどの高度な機能を持つオープンソースのリレーショナルデータベースです。この記事では、インストール、データベースとユーザーの作成、権限の設定、`psql` を使った基本コマンドを説明します。
テストに関する注意:この記事を書いたコンピューターには PostgreSQL サーバーも `psql` もないため、コマンドはここでは実行していません。使っている SQL は、SQL の記事で SQLite を使って検証した標準的な SQL と同じです。PostgreSQL を導入したマシンで自分で実行してください。
必要なもの
- postgresql.org からダウンロードした PostgreSQL 16 以上(`psql` ツールを含む)
- インストール時に設定した `postgres` ユーザーのパスワード
クライアントの接続
手順1:psql で接続する
psql -U postgres -h localhost
手順2:データベースとユーザーを作成する
CREATE DATABASE school;
CREATE USER teacher WITH PASSWORD 'change-me';
GRANT ALL PRIVILEGES ON DATABASE school TO teacher;
実際に使う前に、サンプルのパスワードを強いものに変更してください。
手順3:テーブルを作成してデータを追加する
`school` データベースに接続して実行します。
\c school
CREATE TABLE students (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
score INTEGER
);
INSERT INTO students (name, score) VALUES ('สมชาย', 85), ('สมหญิง', 72);
SELECT name, score FROM students WHERE score >= 80;
`SERIAL` はキーの番号を自動で作ります。`\c` は `psql` のコマンドで、接続するデータベースを切り替えます。
手順4:psql でよく使うコマンド
- `\l`:データベースの一覧
- `\dt`:テーブルの一覧
- `\d students`:テーブルの構造
- `\q`:終了
よくあるミス
- **接続できない:** PostgreSQL サービスが動いているか、ポート 5432 がファイアウォールで遮断されていないか確認します。
- **権限が足りない:** 必要な権限だけを与え、アプリケーションごとにユーザーを分けます。
- **バックアップがない:** `pg_dump school > school.sql` で定期的にバックアップします。
次のステップ
検索を速くするインデックス、`BEGIN` と `COMMIT` を使うトランザクション、JSON データの保存を学びましょう。
まとめ
PostgreSQL はデータベース、ユーザー、権限を分けて管理するサーバーとして動きます。基本の流れは、データベースを作成し、ユーザーを作成し、権限を与え、テーブルに対して SQL を使うことです。