PostgreSQL 4 min read

PostgreSQLとは ― 読み方とバージョンの決まり方、MySQLから来た人が戸惑う点

PostgreSQL は、オープンソースのリレーショナルデータベース管理システム(RDBMS)です。カリフォルニア大学バークレー校の POSTGRES というプロジェクトが元になっていて、SQL に対応したときに今の名前になりました。特定の企業ではなく、世界中の開発者が参加する PostgreSQL Global Development Group が開発しています。

読み方

公式サイトの FAQ では、発音は「post-GRES-que-ell」とされています。カタカナにすると「ポストグレス・キュー・エル」です。公式サイトには発音の音声ファイルも置かれています。

略して「Postgres(ポストグレス)」と呼ぶことも公式に認められています。日本では「ポスグレ」と呼ぶことも多いです。

バージョンの決まり方

  • メジャーバージョン(17、18 など)は、およそ年1回、秋に出る
  • マイナーバージョン(17.6 の「.6」)は少なくとも3か月に1回出て、修正だけを含む
  • 各メジャーは初回リリースから5年サポートされる

2026年10月時点の最新メジャーは PostgreSQL 18 で、サポート中は 14〜18 です。14 は 2026年11月12日にサポートが終わります。確認方法と各バージョンの期限は PostgreSQLのバージョン確認 にまとめています。

MySQL から来た人が戸惑う点

SQL の基本は同じですが、管理用のコマンドや一部の関数は書き方が違います。この記事で示す動作は PostgreSQL 17.6 で確かめたものです。

やりたいこと MySQL PostgreSQL(psql)
データベース一覧 SHOW DATABASES; \l
データベースを切り替える USE db; \c db
テーブル一覧 SHOW TABLES; \dt
テーブル定義 DESCRIBE t; \d t
結果を縦に表示 \G \x
NULL の置き換え IFNULL(a, b) COALESCE(a, b)

SHOW TABLES; や DESCRIBE t; を PostgreSQL で実行すると、構文エラーになります。

もう1つ大きく違うのがスキーマです。PostgreSQL では、データベースの中にスキーマがあり、表はスキーマの中にあります。何も指定しなければ public スキーマに作られます。1つの接続は1つのデータベースにしかつながらないので、まとめて扱いたい表は同じデータベースの中でスキーマを分けて置きます。MySQL の「データベース」は、PostgreSQL のスキーマに近いものです。

関連記事