Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

SQLとは、データベースを操作する言語です。

海外での発音は「シーケル」に近いのですが、日本ではそのまま「エスキューエル」と呼ばれることが多いようです。

SQLの種類にはDML、DDL、DCLの3種あり

SQLには、大きく分けて、DML、DDL、DCLの3種類があります。

DML データを操作するステートメント

プログラマがSQLと言えば、これを指します。

これらの言語ステートメントは、大量データの挿入、更新などに時間がかかります。そのため、insertやupdateの機能を模倣した専用の外部コマンド(インポート、エクスポートコマンド)や、トランザクションを伴わない大量削除コマンド(truncate)などが用意されているケースもあります。

DDL データや構造を定義するステートメント

データベースオブジェクトには、データベース本体、表領域、テーブル、トリガー、インデックスなどが含まれます。

最近のDBMSでは、エクスポートコマンドで出力形式をDDLとしてファイル保存する機能があり、稼働しているデータベースからCREATEステートメントやALTERステートメントを生成するものも多いです。

DCL データを制御するステートメント

分類によっては、トランザクション関連のステートメントをTCL(Transaction Control Language)とするケースもあります。

SQLの規格、最新はSQL:2016


ANSIとISOが定めた標準SQLです。

頻繁に更新されていて、定めた年代を取って、SQL86、SQL89、SQL92、SQL:1999、SQL:2003、SQL:2006、SQL:2008、SQL:2011、SQL:2016があります。最新の標準SQLはSQL:2016。

ただし、対応は各社バラバラで、どのDBMSがどの規格に準拠しているか明記している資料はほとんどありません。

PostgreSQLが唯一、SQL標準への準拠状況を一覧にして公開しているくらいです。

参考)PostgreSQLの SQL規格への準拠

これらの規格の中でも、SQL92は別名SQL2と呼ばれ、DML、DDL、DCLがひと通り定義されています。

また、SQL:1999(SQL99)は別名SQL3と呼ばれ、リカーシブルクエリやOLAP対応、ユニオン、カーソル操作の強化などSQLがRDBMSのための完全な言語になることを目指した規格です。

SQL92とSQL99が大きな節目だと覚えておくと良いでしょう。

RDBMSのシェアは、OracleとMicrosoftが圧倒


2019年時点で、メンテナンスやサポートが継続されているRDBMSを紹介します。大きく分けてオープンソース系と商用系があります。

オープンソースのRDBMSは以下の通り。ただし、IngresやMySQLなど有償での商用サポートがある場合も。

商用のRDBMS製品は以下の通り。

なお、アメリカでのRDBMSのランキングは以下のとおりです。

  1. Oracle
  2. MySQL
  3. Microsoft SQL Server
  4. PostgreSQL
  5. IBM Db2

参考)DB-Engines Ranking 2019年10月のデータより

3位のMicrosoft SQL Serverと、PostgreSQLの間には大きな差があるため、実質上位3つの圧勝と考えてよいでしょう。

MySQLはオープンソースですがOracleが買収して権利を持っています。そのため、RDBMSはOracleとMicsoftの2強となっています。

SQLの独自拡張 共通で使える関数は30%程度


SQLの標準規格は存在するものの、各社での独自拡張も多く存在しています。

このため「Oracleでは動くけど、SQL Serverだと動かない」といったSQLの方言も多数存在します。特にSQL内で使える関数は、引数なども含めて共通で使えるのは全体の30%ほどと言われています。

各社の独自拡張のうち、特に有名なものは以下の通りです。

PL/SQLは、圧倒的シェアを持つOracleデータベースの独自拡張です。もともとプログラム的な処理ができないSQLを、手続き可能(Procedual Language)に拡張することで「PL/SQL」と命名されています。

SQL内でif分岐やforループなどの制御構造を組み込むことができるんですね。FETCHループでカーソルを使って1件づつデータを処理することも可能です。

PL/SQLは、あまりにシェアが大きいため、なるべく互換性をもたせようとしている組織・会社もあります。例えば、PostgreSQLのPL/pgSQLはPL/SQLを参考に実装されていますし、IBMのDB2はOracleからの移行が容易なようにV9.7からPL/SQLをサポートしています。

T-SQL(Transact-SQL)は、PL/SQLと同じくMicrosoft社がSQLに制御構造を持たせた独自拡張。PL/SQLとは真っ向勝負と言って良いほど異なる拡張をしています。

本来、SQLはデータの操作のみをおこない、if分岐やループ処理はプログラム上でおこなうモジュール性が重要と言われていました。SQLにプログラミング的な要素を持たせることには批判もあります。

しかし、2大勢力のPL/SQLとT-SQLが制御構造を取り込んでいるため、開発者としては使うしかないのが現状です。

まとめ

ポテパンダの一言メモ
  • SQLには、DML、DDL、DCLの3種あり
  • SQL標準規格はSQL92とSQL99が大きな節目
  • SQL標準に比較的準拠しているのは、PostgreSQL
  • SQL独自拡張の2大シェアは、PL/SQLとTransact-SQL

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。