データベース編 第3章 / 全13章
RDBの種類(製品)とは
MySQL ・ PostgreSQL ・ SQL Server ・ Oracle ・ SQLite
SQLは共通、製品はいろいろポイント
- 基本のSQL(SELECT・JOINなど)は、どの製品でもほぼ同じように書ける
- 無料のオープンソース(MySQL・PostgreSQL)と、企業向けの有償製品(SQL Server・Oracle)がある
- サーバーを立てずに、アプリの中に組み込んで使うSQLiteもある
名前の由来
同じSQLでも、製品ごとに書き方が少しずつ違う。これを「SQLの方言」と呼ぶ。
仕事の現場では
くわしく(正確な話)
- 標準のSQLはISO(国際標準化機構)で決められているが、各製品は独自の機能を足している。
- SQL Server の独自の書き方を T-SQL、Oracle の独自の書き方を PL/SQL と呼ぶ。
- MySQL から分かれた MariaDB は、MySQLとほぼ同じ感覚で使える。
- 製品を乗り換える(移行する)ときは、方言の書き換えとデータ型の違いへの対応が主な作業になる。
- SQL Server や Oracle は、CPUの数などで決まるライセンス料が費用の大きな部分を占める。
うまれ:Oracle は1979年に最初の商用RDBとして発売。SQL Server は1989年、MySQL は1995年、PostgreSQL は1996年(前身の Postgres は1986年)、SQLite は2000年に登場。
この章の用語(意味と語源)
- MySQL マイエスキューエル
世界中で使われてきた、無料のオープンソースRDB。
WordPress などのWebサービスで定番です。開発元は現在 Oracle 社。サポート付きの有償版もあります。
覚えておく:先頭10件:LIMIT 10
語源My は、共同開発者モンティ・ウィデニウスの娘「My(ミー)」の名前から。
- PostgreSQL ポストグレスキューエル ・ ポスグレ
機能が豊富な、無料のオープンソースRDB。
標準のSQLに忠実で、拡張機能(ベクトル検索の pgvector など)が多いのが特長。新しく作るシステムで選ばれることが多くなっています。
覚えておく:先頭10件:LIMIT 10
語源昔の Ingres というDBの「後(post)」に作られたので Postgres。のちにSQLに対応して PostgreSQL になりました。
- SQL Server エスキューエルサーバー ・ Microsoft
MicrosoftのRDB。企業の業務システムで多く使われる。
Windows・Excel・Power BI など Microsoft 製品と連携しやすいのが強み。有償ですが、小規模向けの無料版(Express)もあります。Azure SQL Database の中身もこれです。
覚えておく:先頭10件:SELECT TOP 10
語源そのまま「SQL のサーバー」。1989年に Sybase 社と共同で作ったのが始まりです。
- Oracle Database オラクル
Oracle社のRDB。銀行や大企業の基幹システムの定番。
止まらないこと・大規模に強いことで選ばれます。ライセンス料が高く、費用の大きな部分を占めることがあります。
覚えておく:先頭10件:FETCH FIRST 10 ROWS ONLY
語源oracle は「神のお告げ」。創業者が以前に関わった、CIA向けのDB開発プロジェクトの名前に由来すると言われます。
- SQLite エスキューライト
サーバーを立てずに、アプリの中に組み込んで使う小さなRDB。
1つのファイルがそのままDBになります。スマホ・ブラウザ・家電の中に入っていて、台数では世界でもっとも使われているDBと言われます。
覚えておく:先頭10件:LIMIT 10
語源SQL + lite(軽い)。
- SQLの方言 Dialect ・ T-SQL ・ PL/SQL
製品ごとに少しずつ違う、SQLの書き方の違い。
基本のSQLは国際標準(ISO)で決まっていますが、各製品が独自の機能を足しています。SQL Server の独自の書き方は T-SQL、Oracle は PL/SQL と呼ばれます。
覚えておく:T-SQL = SQL Server / PL/SQL = Oracle
語源dialect はギリシャ語 dialektos(話し方)から。T-SQL は Transact-SQL、PL/SQL は Procedural Language(手続きを書ける言語)の略。
- MariaDB マリアディービー
MySQL から分かれて作られた、オープンソースのRDB。
MySQL がOracle社のものになったのを機に、元の開発者が始めました。MySQLとほぼ同じ感覚で使えます。
語源MySQL と同じ開発者の、下の娘「Maria(マリア)」の名前から。