「SQLって結局、どのDBを覚えればいいの?」
未経験からIT転職を目指す人によく聞かれる質問です。私自身、実務ではSQL Serverを使っていますが、学習ではMySQL・PostgreSQL・Oracleも触ってきました。OSS-DB Silver(PostgreSQL準拠)、ORACLE MASTER Bronze、そして高度試験のデータベーススペシャリストまで勉強してきた経験から、この記事ではSQLの基本文法・主要DB製品の違い・意外と誤解されがちな「ストアドプロシージャ」の現在地を、未経験者向けに整理します。
結論:SQLの文法はほぼ共通、違うのは「方言」と「現場での立ち位置」
先に結論です。
- SQL自体はANSI SQL(標準規格)がベースにあり、
SELECT・INSERT・UPDATE・DELETEという基本文法はMySQLでもOracleでもSQL Serverでもほぼ同じ - 違うのは、関数名や構文の細部(方言)、ライセンス費用、現場での採用率、学習のしやすさ
- 未経験からの学習なら、無料で始めやすいMySQLかPostgreSQLで基礎を固め、配属先の現場に合わせて方言を覚え直すのが現実的
SQLの基本文法:まずはこの4つだけ覚える
SQLは「データベースに対して命令を出す言語」です。未経験者がまず押さえるべきは、次の4つの命令(DML:データ操作言語)です。
| 命令 | 何をするか | 例 |
|---|---|---|
SELECT | データを取得する | SELECT name FROM users WHERE age > 20; |
INSERT | データを追加する | INSERT INTO users (name, age) VALUES ('田中', 25); |
UPDATE | データを更新する | UPDATE users SET age = 26 WHERE name = '田中'; |
DELETE | データを削除する | DELETE FROM users WHERE name = '田中'; |
この4つの構文は、MySQLでもOracleでもSQL Serverでもほぼ共通です。「SQLという言語を1つ覚えれば、どのDB製品でも土台は使い回せる」というのが、未経験者にとって一番の朗報だと思います。
MySQL・PostgreSQL・Oracle・SQL Server:4大DB製品の違い
ここからが本題です。私は実務でSQL Server、学習でMySQL・PostgreSQL・Oracleを触ってきました。その体感も踏まえて、4製品を比較します。
| 項目 | MySQL | PostgreSQL | Oracle Database | SQL Server |
|---|---|---|---|---|
| 開発元 | Oracle社(元MySQL AB) | PostgreSQL Global Development Group(OSSコミュニティ) | Oracle社 | Microsoft社 |
| ライセンス | 無料(OSS)+有償版あり | 完全無料(OSS) | 有償(高額)。Express版は無料 | 無料のExpress版あり。商用は有償 |
| 構文の特徴 | シンプル。LIMIT句で件数制限 | 標準SQLに忠実。LIMIT句・独自関数が豊富 | 独自方言が多い。ROWNUM・DUAL表など | T-SQLという独自拡張。TOP句で件数制限 |
| 現場での採用率(体感) | Web系・スタートアップで高い | Web系・分析基盤で採用増加中 | 大企業の基幹システムで根強い | 業務系SIer・Windows中心の現場で多い |
| 学習のしやすさ | ◎ 情報が多く環境構築も簡単 | ◎ 無料かつ標準SQLに近く学びやすい | △ Express版でも構築がやや重い | ○ SQL Server Management Studio(SSMS)のGUIが使いやすい |
| 私の学習・実務経験 | 個人学習で使用 | OSS-DB Silverの学習で使用 | ORACLE MASTER Bronzeで学習 | 実務で使用中 |
現場での採用率について補足すると、私自身が実際に配属された現場(SIer案件)ではSQL Serverが使われていました。SES企業経由で未経験から入る場合、Web系スタートアップならMySQL、業務系SIerならOracleかSQL Serverという傾向が体感としてあります。ただしこれはあくまで私の経験と業界の一般的な傾向であり、会社・案件によって差があります。
学習のしやすさで言うと、MySQLかPostgreSQLが圧倒的に取り組みやすいというのが私の実感です。OSS-DB Silverの学習でPostgreSQLを触ったときも、環境構築でつまずくことはほとんどありませんでした。一方でOracleは、ORACLE MASTER Bronzeの学習で独自の方言(ROWNUMやDUAL表など)に最初戸惑った記憶があります。
ストアドプロシージャとは:モダンなシステムではどう扱われているか
未経験者がつまずきやすいポイントの一つが「ストアドプロシージャ」です。
ストアドプロシージャとは、複数のSQL文をひとまとめにして、データベース側に保存しておける処理のかたまりです。アプリケーション側からは「この処理を呼び出す」という一行を書くだけで、複雑な処理をデータベース側にまとめて実行させられます。
かつてのメリット
- アプリケーションのコードを変更せずに、DB側だけで処理を修正できる
- ネットワーク越しに何度もSQLを送るより、まとめて1回で処理できるため速い
- DB側に処理ロジックを集約できるので、複数のアプリケーションから同じ処理を呼び出せる
モダンなシステムでの立ち位置
ただし、最近の開発トレンドでは、ストアドプロシージャに処理ロジックを寄せる設計は敬遠されがちです。理由は主に3つあります。
- バージョン管理がしにくい:アプリケーションコードはGit等でバージョン管理するのが当たり前になった一方、DB側のストアドプロシージャは同じようにコード管理・レビューの仕組みに乗せにくい
- テストが書きにくい:単体テストの仕組みが充実しているアプリケーション側のコードに比べ、ストアドプロシージャ単体のテストは面倒になりがち
- マイクロサービス化との相性が悪い:「ロジックはアプリケーション側、DBはデータの保存だけ」という役割分担が主流になり、DB側にロジックを持たせること自体が避けられる傾向にある
とはいえ、大規模なバッチ処理や、既存の基幹システムでは今でもストアドプロシージャが現役です。私が実務で触れているSQL Serverの現場でも、大量データを一括更新するようなバッチ処理では、ストアドプロシージャが使われている場面があります。「新規開発では避けられがちだが、既存の大規模システムや処理性能が最優先される場面では今も使われている」というのが、私の理解している現在地です。
未経験者としては、「ストアドを書けること」より「読んで何をしているか理解できること」を目標にするのが現実的だと思います。配属先の現場に既存のストアドプロシージャがあれば、まずはそれを読み解くところから始めることになります。
学習ロードマップ:どの順番で学べばいいか
未経験からSQLを学ぶなら、次の順番がおすすめです。
- MySQLかPostgreSQLで基礎を固める(無料で環境構築しやすい)
- 配属予定・志望する現場の製品に合わせて方言を覚える(SQL Server・Oracleなど)
- 余力があればOSS-DB Silverのような資格で体系的に知識を整理する(私の合格体験記)
Udemyにも、各DB製品ごとの入門講座があります。私が実際に受講したのはSQL Serverの講座で、ゼロからインストール〜基本文法まで丁寧に解説されていて役立ちました。他の製品についても調べたので、あわせて紹介します。
SQLServer文法1:経験ゼロからSQLServerをインストールしてある程度SQLが書けるようになる方法(受講済み)
Udemyで講座を見る
【ゼロからスタート】Oracleで始めるSQL入門トレーニング
Udemyで講座を見る
PostgreSQL入門!新入社員研修向け!現場で最低限必要なSQLの基本文法をサクッと学ぶ!
Udemyで講座を見る
【SQL-超入門】初心者向け『データベース』&『SQL』超入門コース
Udemyで講座を見る
受講済みのSQL Server講座は、インストールの手順から丁寧に解説されていて、実務で使う今も基礎を思い出すのに役立っています。Oracle・PostgreSQL・MySQLの講座は私自身の受講レビューではなく、評価やカリキュラム構成をもとにリサーチした候補である点は正直にお伝えしておきます。
まとめ:SQLは1つ覚えれば土台は使い回せる
SELECT・INSERT・UPDATE・DELETEというSQLの基本文法は、MySQL・Oracle・SQL Serverでほぼ共通- 違うのは方言・ライセンス費用・現場での採用率・学習のしやすさ。学習は無料で始めやすいMySQLかPostgreSQLがおすすめ
- 私は実務でSQL Server、学習でMySQL・PostgreSQL・Oracleを触ってきた
- ストアドプロシージャは、モダンな新規開発では敬遠されがちだが、既存の大規模システムやバッチ処理では今も現役
- 未経験者はまず基礎を1製品で固め、配属先の製品に合わせて方言を覚え直す流れが現実的
SQLは「覚えることが多そう」に見えますが、基本文法自体はシンプルです。まずは1つのDB製品で手を動かしてみることが、一番の近道だと思います。
よくある質問(FAQ)
Q1. 未経験者はMySQL・Oracle・SQL Serverのどれから学ぶべきですか?
無料で環境構築しやすいMySQLかPostgreSQLがおすすめです。基本文法はどのDB製品でもほぼ共通なので、まず1つで基礎を固めてから、配属先や志望する現場の製品に合わせて方言を覚え直すのが現実的です。
Q2. SQLの文法はDB製品ごとに全然違いますか?
いいえ、基本のDML(SELECT・INSERT・UPDATE・DELETE)はほぼ共通です。違うのは関数名や件数制限の書き方(MySQLのLIMIT、SQL ServerのTOPなど)といった細部の「方言」です。
Q3. ストアドプロシージャは今でも学ぶ必要がありますか?
自分で書けるようになる優先度は高くありませんが、既存の大規模システムや基幹バッチ処理では今も使われています。配属先の現場で既存のストアドプロシージャを読み解く場面はあり得るので、「読んで理解できる」レベルは知っておいて損はありません。
Q4. 現場でよく使われているDB製品はどれですか?
私の体感では、Web系・スタートアップはMySQL、業務系SIerやWindows中心の現場はSQL Server、大企業の基幹システムはOracleという傾向があります。ただし会社・案件によって差があるので、あくまで一つの目安です。
Q5. SQL学習にはどんな教材がおすすめですか?
Udemyの各DB製品向け入門講座が体系的でおすすめです。私自身はSQL Serverの講座(ゼロからインストール〜基本文法)を受講し、実務でも基礎を思い出すのに役立ちました。Oracle・PostgreSQL・MySQLの講座も評価をもとにリサーチしています。