0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【PostgreSQL】~備忘録~インストールから基本操作・コマンド一覧まで【Windows 11】

0
Posted at

はじめに

本記事では、PostgreSQLのインストールから基本的なSQL操作・コマンド一覧までをまとめます。

初学者の方でも手を動かしながら理解できるように
手順・コマンド・コード例を丁寧に解説するつもりで
まとめていきます。

対象読者

  • データベースを初めて学ぶ方
  • PostgreSQLを業務・個人開発で使い始めたい方

実行環境

項目 内容
OS Windows 11
PostgreSQL 16系

1. PostgreSQL とは

PostgreSQLはオープンソースのリレーショナルデータベース(RDBMS)です。
完全無料で商用利用も可能で、世界中のシステムで採用されています。

主な特徴

特徴 内容
オープンソース 無料・商用利用可
ACID準拠 トランザクションの信頼性が高い
豊富なデータ型 JSON・配列・地理情報など
SQL標準への高い準拠度 複雑なクエリも書きやすい
多言語対応 Python・Go・Java・Node.jsなど

MySQL との違い(簡易比較)

比較項目 PostgreSQL MySQL
SQL標準準拠 高い やや低い
複雑なクエリ 得意 やや苦手
書き込み速度 普通 速い
JSON対応 高機能 基本的な対応
ライセンス PostgreSQL License GPL / 商用

2. インストール(Windows 11)

インストーラーのダウンロード

公式サイトから Windows 用インストーラーを入手します。

https://www.postgresql.org/download/windows/

EnterpriseDB 製インストーラーを選択してください。
GUI付きで初心者に最適です。


インストール手順

手順 内容
1 ダウンロードした .exe を右クリック →「管理者として実行」
2 インストール先はデフォルト(C:\Program Files\PostgreSQL\16)でOK
3 コンポーネントを選択する
4 スーパーユーザー postgres のパスワードを設定する
5 ポート番号はデフォルト(5432)のまま進む

コンポーネントの選択

インストール時に以下をすべてチェックします。

☑ PostgreSQL Server   ← メインのDBサーバー
☑ pgAdmin 4           ← GUIツール(初学者に便利)
☑ Stack Builder       ← 追加ツール管理
☑ Command Line Tools  ← psql コマンドに必要

注意: スーパーユーザーのパスワードは後から変更が手間なので、最初にしっかり決めておきましょう。


PATH を環境変数に追加

psql コマンドをどこからでも使えるように PATH を設定します。

# PowerShell(管理者として実行)
[System.Environment]::SetEnvironmentVariable(
  "Path",
  $env:Path + ";C:\Program Files\PostgreSQL\16\bin",
  "Machine"
)

設定後、新しいターミナルを開いてバージョン確認します。

psql --version
# psql (PostgreSQL) 16.x と表示されれば成功

3. 初期設定・接続手順

psql でサーバーに接続

# 書式: psql -U ユーザー名 -d データベース名
psql -U postgres

パスワード入力後、以下のプロンプトが表示されれば接続成功です。

postgres=#

データベースとユーザーの作成

-- 新しいユーザー(ロール)を作成
CREATE USER myuser WITH PASSWORD 'mypassword';

-- データベースを作成
CREATE DATABASE mydb OWNER myuser;

-- 権限付与
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

-- mydb に切り替え
\c mydb myuser

テーブルの作成と基本操作

-- テーブル作成
CREATE TABLE users (
    id         SERIAL PRIMARY KEY,
    name       VARCHAR(100) NOT NULL,
    email      VARCHAR(200) UNIQUE,
    age        INTEGER,
    created_at TIMESTAMP DEFAULT NOW()
);

-- データ挿入
INSERT INTO users (name, email, age)
VALUES ('山田太郎', 'yamada@example.com', 25);

-- データ取得
SELECT * FROM users;

-- データ更新
UPDATE users SET age = 26 WHERE name = '山田太郎';

-- データ削除
DELETE FROM users WHERE id = 1;

4. コマンド一覧

psql メタコマンド(\ 系)

コマンド 説明 使用例
\l データベース一覧を表示 \l
\c [DB名] データベースに切り替え \c mydb
\dt テーブル一覧を表示 \dt
\d [テーブル名] テーブル構造を表示 \d users
\du ユーザー(ロール)一覧 \du
\i [ファイル] SQLファイルを実行 \i setup.sql
\o [ファイル] 出力をファイルに書き出し \o result.txt
\timing クエリ実行時間を表示 \timing
\e 外部エディタでSQL編集 \e
\q psqlを終了 \q
\? メタコマンドのヘルプ \?
\h [SQL] SQL構文のヘルプ \h SELECT

DDL(データ定義言語)

コマンド 説明 使用例
CREATE DATABASE データベースを作成 CREATE DATABASE mydb;
DROP DATABASE データベースを削除 DROP DATABASE mydb;
CREATE TABLE テーブルを作成 CREATE TABLE t (id SERIAL PRIMARY KEY, name TEXT);
ALTER TABLE テーブルを変更(列追加など) ALTER TABLE t ADD COLUMN age INT;
DROP TABLE テーブルを削除 DROP TABLE IF EXISTS t;
CREATE INDEX インデックスを作成(検索高速化) CREATE INDEX idx_name ON t(name);
CREATE VIEW ビューを作成 CREATE VIEW v AS SELECT * FROM t WHERE age > 20;

DML(データ操作言語)

コマンド 説明 使用例
SELECT データを検索・取得 SELECT name, age FROM users WHERE age >= 20;
INSERT INTO データを挿入 INSERT INTO users (name) VALUES ('鈴木');
UPDATE データを更新 UPDATE users SET age = 30 WHERE id = 1;
DELETE データを削除 DELETE FROM users WHERE id = 1;
UPSERT 挿入 or 更新(重複時) INSERT INTO t VALUES(1,'A') ON CONFLICT(id) DO UPDATE SET name='A';
TRUNCATE 全データを高速削除 TRUNCATE TABLE users;

よく使う関数・句

コマンド / 関数 説明 使用例
COUNT() 件数を数える SELECT COUNT(*) FROM users;
SUM() / AVG() 合計 / 平均 SELECT AVG(age) FROM users;
MAX() / MIN() 最大 / 最小 SELECT MAX(age) FROM users;
GROUP BY グループ集計 SELECT age, COUNT(*) FROM users GROUP BY age;
ORDER BY 並び順を指定 SELECT * FROM users ORDER BY age DESC;
LIMIT / OFFSET 取得件数 / 開始位置 SELECT * FROM users LIMIT 10 OFFSET 20;
JOIN テーブルを結合 SELECT u.name, o.item FROM users u JOIN orders o ON u.id = o.user_id;
LIKE パターン検索 SELECT * FROM users WHERE name LIKE '山%';
NOW() / CURRENT_DATE 現在日時 / 日付 SELECT NOW();
COALESCE() NULL を別値に置換 SELECT COALESCE(age, 0) FROM users;
CAST() 型変換 SELECT CAST('123' AS INTEGER);
EXPLAIN ANALYZE クエリ実行計画を確認 EXPLAIN ANALYZE SELECT * FROM users;

バックアップ・復元(シェルから実行)

コマンド 説明 使用例
pg_dump DBをバックアップ(SQL形式) pg_dump -U postgres mydb > backup.sql
pg_dump -Fc カスタム形式でバックアップ pg_dump -U postgres -Fc mydb > backup.dump
pg_restore カスタム形式から復元 pg_restore -U postgres -d mydb backup.dump
psql(リストア) SQLファイルから復元 psql -U postgres mydb < backup.sql
pg_dumpall 全DBをバックアップ pg_dumpall -U postgres > all.sql

まとめ

手順 コマンド
バージョン確認 psql --version
サーバーに接続 psql -U postgres
DB切り替え \c mydb
テーブル一覧 \dt
テーブル構造確認 \d users
psqlを終了 \q

さいごに

PostgreSQL は個人開発から大規模な業務システムまで幅広く使われているデータベースです。
OSS-DBの資格取得予定ですのでハンズオンで学んでいきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?