PostgreSQLモード
SERIAL、RETURNING、ILIKE、EXCEPTなど、PostgreSQLでよく目にするSQLの違いを確認します。
What is SQL Dialect?
SQLには、ISOやANSIが定めた「標準SQL」という世界共通の基本ルールが存在します。しかし、実際のデータベース(RDBMS)製品は、標準SQLだけではカバーしきれない便利な機能や、製品独自の進化を遂げた構文を多数持っています。
このように、特定のデータベース製品でしか動かない(または挙動が変わる)独自のSQL構文や関数のことを、エンジニア界隈では「SQL方言(Dialect)」と呼びます。
SELECT, WHERE, INNER JOIN などの基本操作LIMIT(件数制限)、AUTO_INCREMENT(自動採番)、NVL()(NULL置換)など実務で「PostgreSQLからMySQLへシステムを移行する」といった場面では、この方言の違いによるエラー(構文エラーや意図しない挙動)が必ずと言っていいほど発生します。そのため、ベースとなるSQLの知識に加えて、「RDBMSごとにどう書き方が変わるのか」を把握しておくことが重要になります。
Database Guides
自動採番・文字列結合・NULL処理・件数制限など、実務で頻出する「方言の差」をRDBMSごとにまとめました。アイコンをクリックして各データベースの特徴を確認してみましょう。
SERIAL、RETURNING、ILIKE、EXCEPTなど、PostgreSQLでよく目にするSQLの違いを確認します。
AUTO_INCREMENT、CONCAT()、IFNULL()など、MySQLでよく使われる書き方を他DBと比較しながら体験します。
FETCH FIRST、NVL()、MINUS、DUALなど、Oracle Databaseへ切り替えたときに戸惑いやすい違いを確認します。
INTEGER PRIMARY KEYと自動採番、Type Affinityによる柔軟な型の扱いなど、SQLiteならではの特徴を確認します。
Learning Point
たとえば「検索結果を5件だけ取得したい」という目的は、どのRDBMSでもほぼ同じです。
しかし、その書き方はMySQLやPostgreSQLならLIMIT、Oracle DatabaseならFETCH FIRSTと変わります。
Miria SQL Learningでは、ひとつの構文を丸暗記するのではなく、同じ処理がDBごとにどう変化するのかを比較しながら学べるようにしています。
Compare RDBMS
個別の構文を確認したら、次はRDBMS同士を並べて整理できます。
COMPARISON GUIDE
自動採番、文字列結合、NULL処理などのSQL方言に加えて、両RDBMSを使うときに意識したい違いを比較して整理します。
PostgreSQLとMySQLを比較するTry It Yourself
ガイドで構文を読んだあとは、Miria SQL LearningのRDBMS設定を切り替えて実際のSQLを書いてみましょう。
Miria SQL Learning
PostgreSQL・MySQL・Oracle DB・SQLiteを、
ひとつの学習環境で比較してみましょう。
インストール不要・ブラウザから開始