データベースの用語一覧へ
このページの目次

PostgreSQLとは?

読み方:postgresql

最終更新:2026/08/18

3秒でわかる

オープンソースのリレーショナルデータベース。標準SQLへの忠実さとJSONや全文検索まで含む機能の広さから、業務システムでも定番になっています。

もう少し詳しく

どういうものか

PostgreSQL は、テーブルと SQL でデータを扱うオープンソースのリレーショナルデータベース管理システムです。読み方は「ポストグレスキューエル」、現場では「ポスグレ」と略されます。1980 年代のカリフォルニア大学バークレー校の POSTGRES が源流で、いまも年 1 回のペースでメジャーバージョンが出ています。

ライセンスは PostgreSQL ライセンスという緩い条件で、商用サービスに組み込んでも費用はかかりません。

なぜ必要か

データを CSV やファイルで持つと、同時に書き込んだときの壊れ方、集計のたびに全件を読む遅さ、不正な値の混入といった問題が一気に出ます。PostgreSQL はトランザクションインデックス、制約でこれらをまとめて引き受けます。

MySQL と並ぶ選択肢の中で PostgreSQL が選ばれるのは、標準 SQL への準拠が厳しく、ウィンドウ関数や CTE といった集計向けの構文が早くから揃っていた点、そして JSON 型・全文検索・地理情報(PostGIS)まで 1 つのデータベースで賄える点です。

具体例

型と制約を宣言しておくと、おかしなデータはデータベース側で弾かれます。

CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, user_id BIGINT NOT NULL REFERENCES users(id), amount NUMERIC(10,2) NOT NULL CHECK (amount >= 0), detail JSONB, created_at TIMESTAMPTZ NOT NULL DEFAULT now() ); SELECT user_id, SUM(amount) AS total FROM orders WHERE created_at >= now() - INTERVAL '30 days' GROUP BY user_id ORDER BY total DESC LIMIT 10;

JSONB 列には構造の決まらないデータをそのまま入れられ、detail->>'coupon' のように SQL から取り出せます。

つまずきやすいところ

  • 識別子の大文字小文字CREATE TABLE Users は内部で users に畳まれます。"Users" とダブルクォートで作った場合だけ大文字が保持され、以後も毎回クォートが必要になります

  • 金額に float を使う — 誤差が出ます。NUMERIC を使います

  • VACUUM を知らない — 更新や削除をしても古い行はすぐ消えず、自動 VACUUM が回収します。大量更新のあとテーブルが太るのはこの仕組みが理由です

  • MySQL の癖を持ち込むLIMIT 10, 20 は使えず LIMIT 20 OFFSET 10 と書きます
  • 似た用語との違い

    名前位置づけ
    PostgreSQLRDBMS の製品名。サーバーとして動く
    SQLデータベースを操作する言語。製品ではない
    MySQL別の RDBMS。方言や既定の挙動が異なる
    SQLite1 ファイルで完結する組み込み型。サーバーを立てない


    覚え方

    「SQL は言葉、PostgreSQL はその言葉を話す相手」と分けて覚えます。SQL 入門で学んだ構文はそのまま PostgreSQL で通じ、違いが出るのは型名と方言の部分だけです。

    知識のつながり

    サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

    現在地PostgreSQLDB

    LEARN BY DOING

    この用語を、教材で使ってみる

    直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

    SQL・データベースコースの全編を見る