PostgreSQL Mode

PostgreSQLモードで
独自の方言を体験しよう

Miria SQL Learningでは、設定を切り替えることで PostgreSQL特有の構文をブラウザ上でそのまま試すことができます。

SQLの基本構文はMySQLやOracleと共通していますが、 SERIALRETURNINGILIKE など、PostgreSQL環境でしか通らない、あるいはよく目にする 独自の機能や特徴的な記法を実際に書いて体験してみましょう。

ミリア

01

こんな方言に挑戦できます

PostgreSQLモードでは、他のRDBMSとは少し違う こんな構文の実行結果やエラーを体験できます。

SERIAL

SERIALで連番のIDを作る

PostgreSQLでは、自動的に増加する整数IDを定義する方法として SERIAL という記法が広く使われてきました。

PostgreSQL
CREATE TABLE items (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    price INTEGER NOT NULL
);

他のDBモードでこのSQLを実行するとどうなるか、ぜひエディタで試してみてください。

RETURNING

INSERTした結果をそのまま取得する

PostgreSQLモードでは INSERT などの変更処理に RETURNING を付けて、変更された行の値をすぐに取得できます。

PostgreSQL
INSERT INTO items (name, price)
VALUES ('Blue Hoodie', 6800)
RETURNING id, name, price;

新しい商品を登録した直後に、自動採番された id を即座に確認したい場合に便利な機能です。

ILIKE

ILIKEで大文字・小文字を区別せず検索する

PostgreSQLモードなら、標準の LIKE に加えて ILIKE を試すことができます。

PostgreSQL
SELECT *
FROM items
WHERE name ILIKE '%hoodie%';

HoodieHOODIEhoodie といった表記の違いを無視して検索できるか、データを入れて実験してみましょう。

EXCEPT

EXCEPTで「片方にだけ存在する行」を取得する

2つのSELECT結果を比較し、最初の結果に存在して2つ目には存在しない行を取得したい場合には EXCEPT を利用します。

PostgreSQL
SELECT customer_id
FROM customers

EXCEPT

SELECT customer_id
FROM orders;
EXCEPTはPostgreSQL専用ではありません

EXCEPT 自体はSQLの標準的な集合演算ですが、実はOracleモード等に切り替えるとエラーになります(Oracleでは MINUS を使うためです)。こうした環境ごとの挙動の違いもアプリ内で体感できます。

Comparison

MySQL・Oracleと比べると?

同じ目的の処理でも、RDBMSモードを切り替えると代表的な書き方が異なります。

PostgreSQL・MySQL・Oracle Databaseの代表的なSQL構文比較
目的 PostgreSQL MySQL Oracle DB
自動採番 SERIAL / IDENTITY AUTO_INCREMENT IDENTITY / SEQUENCE
大文字・小文字を区別しない検索 ILIKE 照合順序などに依存 関数・照合設定などを利用
変更行の値を返す RETURNING PostgreSQLとは異なる方式 RETURNING INTO
件数制限 LIMIT 10 LIMIT 10 FETCH FIRST 10 ROWS ONLY
文字列結合 a || b CONCAT(a, b) a || b

※ 表は学習上の代表例です。アプリ内のバリデーションもこれに沿って判定されます。

Learning Point

「PostgreSQLの書き方」を丸暗記しない。

実務では、ひとつのRDBMSだけを知っていれば十分とは限りません。

たとえば LIMIT を覚えるだけではなく、「これは結果件数を制限するための構文であり、Oracleモードに切り替えたらエラーになる」と体験しておくことで、RDBMSが変わっても対応しやすくなります。

Miria SQL Learningでは、PostgreSQLの構文を覚えることそのものより、共通する考え方とDBごとの差分をセットで理解することを重視しています。

Try PostgreSQL

読んだら、次は
SQLを動かしてみよう。

構文の違いは、説明を読むだけでは意外と覚えにくいものです。

Miria SQL LearningでPostgreSQLモードを選択して、SQLを書きながらRDBMSごとの違いを確認してみてください。

ミリア

Next Guide

Miria SQL Learning

PostgreSQLを、
実際に書いて覚えよう。

環境構築なし。
ブラウザからSQLを書き始められます。

インストール不要・ブラウザから開始