Oracle DB Mode

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

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

FETCH FIRSTによる件数制限や、DUALを使ったクエリなど、MySQLやPostgreSQLとは書き方が異なるOracleらしいSQLを実際に書いて体験してみましょう。

ミリア

01

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

SELECTやINSERTなどの基本は同じでも、Oracle Databaseへ切り替えると使う構文や関数が変わる場面があります。Miria SQLでは、その違いを実際にSQLを書きながら確認できます。

FETCH FIRST

FETCH FIRSTで取得件数を制限する

検索結果から最初の数件だけ取得したい場合、Oracle DatabaseではFETCH FIRST n ROWS ONLYを利用できます。

Oracle DB
SELECT *
FROM items
ORDER BY price DESC
FETCH FIRST 5 ROWS ONLY;
MySQLで覚えたLIMITを書くと?

MySQLやPostgreSQLではLIMIT 5がよく使われます。一方、Oracle Databaseモードで同じ感覚でLIMITを書くとエラーになります。アプリ内でぜひエラーを体験してみてください。

NVL()

NVL()でNULLを別の値に置き換える

値が存在しないNULLを別の値へ置き換えたい場合、Oracle DatabaseではNVL()がよく利用されます。

Oracle DB
SELECT
    name,
    NVL(description, '説明なし') AS description
FROM items;
DBごとに似た関数がある

MySQLではIFNULL()、OracleではNVL()を目にする機会があります。標準SQLのCOALESCE()も利用できるため、「NULLを別の値へ置き換える」という目的から理解すると整理しやすくなります。

MINUS

MINUSで差集合を求める

ひとつ目のSELECT結果には存在するものの、ふたつ目のSELECT結果には存在しない行を取得したい場合、Oracle DatabaseではMINUSが代表的な書き方です。

Oracle DB
SELECT customer_id
FROM customers

MINUS

SELECT customer_id
FROM orders;
PostgreSQLで覚えたEXCEPTとの違い

PostgreSQLでは同じような差集合をEXCEPTで表現します。Oracle DBモードでEXCEPTを入力すると、構文エラーの洗礼を受けることができます。

DUAL

DUALを使って式や関数だけを実行する

Oracle Databaseでは、実際の業務テーブルを参照せず式や関数の結果だけ確認したいときに、DUALという特殊な1行のテーブルを利用できます。

Oracle DB
SELECT 1 + 1
FROM DUAL;

Comparison

PostgreSQL・MySQLと比べると?

同じ目的のSQLでも、Oracle Databaseへ切り替えると関数・構文・データ型の名前が変わることがあります。

Oracle Database・PostgreSQL・MySQLの代表的なSQL構文比較
やりたいこと Oracle DB PostgreSQL MySQL
件数を制限 FETCH FIRST LIMIT LIMIT
NULLを置換 NVL() COALESCE() IFNULL()
差集合 MINUS EXCEPT EXCEPT
文字列結合 a || b a || b CONCAT(a, b)
文字列型 VARCHAR2 VARCHAR VARCHAR
数値型 NUMBER INTEGER / NUMERIC INT / DECIMAL

※ 表は各RDBMSでよく目にする代表例を学習用に整理したものです。

Learning Point

「LIMITが使えない」で終わらず、Oracleならどう書くかを考える。

RDBMSが変わったときに重要なのは、覚えていた構文が使えないこと自体ではありません。

たとえばLIMITが使えなくても、本来やりたいことは「取得する行数を制限する」ことです。Oracle DatabaseならFETCH FIRSTという別の書き方へ置き換えられます。

同じように、IFNULL()NVL()EXCEPTMINUSを目的から比較することで、SQLをRDBMSごとの差分として理解できるようになります

Try Oracle DB

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

Oracleの構文を覚えるには、実際に手を動かすのが一番です。

Miria SQL LearningでOracle DBモードを選択して、他のDBとの違いを体感してみてください。

ミリア

Next Guide

Oracle Databaseで覚えた処理がPostgreSQLやMySQLではどう変わるのか、続けて比較できます。

Miria SQL Learning

Oracleの方言は、
実際に書くともっとわかる。

FETCH FIRSTもNVL()もMINUSも、
ブラウザ上ですぐ試せます。

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