David SchwarzenbergによるPixabayからの画像
こんにちは。倉内です。
基本的な内容であれば学習コストはそれほど高くないわりに業務での活躍シーンが多いのがSQLです。
ITエンジニアの方はもちろん、そうでない職種の方もデータの抽出や分析をしたいという場面がよくありますよね。書籍もよいですが、「SQLを書いて実行してどんな結果が返ってくるか」を自分の手を動かしながら確認できるほうが習得は早いと思います。
そこで今回はSQLの基本を学べる学習サイト7つを学習内容を比較する形で紹介します。(2020年9月10日時点の情報です)
使いたいデータベースの種類によって多少記述は違うのですが基本はそこまで大きく違わないので、いろいろ試してご自分に一番合いそうなサイトを見つけてみてください。
学習形式・料金比較
サービス名 | 形式 | 料金 |
---|---|---|
ドットインストール | 動画・ローカル環境 | 「PostgreSQL入門」「SQLite入門」「MySQL入門」ともに一部無料(月額1,080円) |
paizaラーニング | 動画・オンライン環境 | 「DB/SQL入門編」一部無料(プランにより月600円から) |
Progate | スライド・オンライン環境 | 「SQL学習コース」一部無料(月額980円) |
SQL攻略 | テキスト・オンライン環境 | 無料 |
DBOnline | テキスト・オフライン環境 | 無料 |
CODEPREP | テキスト・オンライン環境 | 「SQL超入門」「SQL入門 基本操作編」「SQL入門 レコード操作編」ともに無料 |
Codecademy | テキスト・オンライン環境 | 「Learn SQL」「How to Transform Tables with SQL」ほか無料*1 |
(補足)実行環境について
オンライン環境とは、環境構築なしにブラウザ上でコードを書いて実行できる環境のことを言います。
SQLが実行できる環境を整えるには、データベースのインストールからテーブル作成、データ追加など、初めて取り組む方には少し難しめの手順が多いので、まずはオンライン環境を使ってみるとよいでしょう。
ただ、手順を記載しているサイトもありますので、業務で使うデータベースの種類が分かっていて、自由にデータを触りたいのであればぜひ環境構築からトライしてみてください。
学習内容比較
データ取得の基本と応用にどういった内容が含まれるかは表の下部に記載しています。
内容/サービス名 | ドット | paiza | Prog | 攻略 | Online | PREP | Code |
---|---|---|---|---|---|---|---|
MySQL | ○ | ○ | ○ | ○ | ○ | ||
SQLite | ○ | ○ | ○ | ○ | |||
PostgreSQL | ○ | ○ | |||||
環境構築手順 | ○ | ○ | ○ | ||||
用語解説 | ○ | ○ | ○ | ○ | |||
DB作成 | ○ | ○ | ○ | ||||
TBL作成 | ○ | ○ | ○ | ○ | ○ | ||
TBL操作*2 | ○ | ○ | ○ | ○ | |||
INDEX作成 | ○ | ○ | |||||
VIEW作成 | ○ | ○ | |||||
TRIGGER作成 | ○ | ○ | |||||
データ取得: 基本 | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
データ取得: 応用 | ○ | ○ | ○ | ○ | ○ | △*3 | ○ |
追加・更新・削除 | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
サブクエリ | ○ | ○ | ○ | ○ | ○ | ○ | |
テーブル結合*4 | ○ | ○ | ○ | ○ | ○ | ○ | |
Web開発+DB | ○ | ○ | ○ | ○ | |||
データ分析 | ○ | ○ |
※文字数の関係で一部サービス名を省略させていただいています。
※複数のデータベースのSQL学習講座があるところは、種類によっては全内容がそろっていない場合もあります。
(補足)学習内容の項目について
データ取得の基本とは、ここではシンプルなSELECT文での記述(全カラム表示、特定カラム表示を含む)、WHEREでの単純な条件指定(ORやANDを使った複合条件の指定、演算子を使った単純計算を含む)を言います。
応用とは、この記事ではWHEREでの複雑な条件指定と取得データの加工を指します。具体的には、BETWEENを使った範囲指定、LIKEを使ったパターンマッチング、ORDER BYを使った取得データのソート、GROUP BY(HAVINGの使用含む)で取得したデータのグルーピング、集合関数を使った最大値・最小値・平均値などを求める、DISTINCTを使った重複排除といったものを対象としています。
基本的な内容を挙げましたが、各学習サイトの名称がこれに完全一致しない場合があります。また、ここに挙げていない学習コンテンツを持つサイトもあります。
7つの学習サイトの特徴
ドットインストール
SQLのレッスンはこちら
おすすめポイント
- 3種類のデータベース別にSQLの入門講座が用意されている
- ローカル環境構築の手順から学べて、実践的な開発にも役立つ
ドットインストールでは、SQL入門講座が「PostgreSQL入門」「SQLite入門」「MySQL入門」の3つに分かれており、使うデータベースの種類があらかじめ決まっている方には特におすすめです。
データベース用語を理解するための内容も盛り込まれており、初めてSQLについて学ぶ方でも基礎から理解しながら進められます。
SQLを書いて実行するためには自身のPCに環境構築をする必要がありますが、講座の最初もしくは補足資料にて手順の解説があるため安心して取り組めるでしょう。
また、Webフレームワークなどを使ったアプリ開発ではデータベースとの連携が欠かせませんが、それらについても学べる実践的な講座も用意されています。
paizaラーニング
DB/SQL入門編はこちら
おすすめポイント
- 環境構築なしにブラウザ上でSQLを実行することができる
- 学習内容を演習問題で復習して次に進むので定着しやすい
paizaラーニングでは、ブラウザ上でデータベースを作成し、すぐにSQLを書いて実行するところまでできるようになっています。データベースはMySQLを使います。
動画講座を見て学ぶ形式で、解説はプロの声優さんが担当!基本的な操作から、業務でSQLを使うエンジニア以外の方へ向けたログ解析やクロス集計についても取り上げています。
また、「Webアプリ開発入門 PHP+MySQL編」では、掲示板サイト作成を例にPHPでデータベースを参照してデータ取得する方法を学べます。
SQLに関連して「攻撃手法から学ぶ ハッカー入門」(Webセキュリティ入門)講座も公開中です。SQLインジェクションなどが学べる内容となっていますので、興味がある方は覗いてみてください。
Progate
SQL学習コースはこちら
おすすめポイント
- スライドのていねいな解説と課題画面の案内がとにかく分かりやすい
- 他の学習方法でSQL習得に挫折したことがある方でも継続できる
はじめてSQLに触れる方にも分かりやすくていねいな解説が特徴で、SQLを書く際にはヒントとなる情報を常に参照しながら進められます。
環境構築の手間なく、ブラウザ上でSQLを書いて実行ができます。
基本を学ぶ「学習コース」のあとに実践的な演習課題に取り組む「道場コース」も用意されているため、自分がどこまで理解できているかを試すのに最適です!
前述のとおり、受講には環境構築は不要ですが、コラムとしてMySQLのインストール方法の解説も公開されています。
SQL攻略
おすすめポイント
- 基本構文をひとつずつ演習とセットで頭に入れられる
- 情報処理試験などでよく出題される「正規化」についても学べる
シンプルな作りながらブラウザ上でSQLを実行でき、説明と演習問題がセットで表示されているため問題集的な使い方もできます。
条件指定でデータを抽出したいときによく使う構文(SUMやMAXをはじめとした集合関数、他にもBETWEEN、GROUP BY、DISTINCTなど)の説明がサンプルとともにしっかりポイントを押さえて書かれています。
他の学習サイトと少し違う点として、基本情報処理試験やITパスポートで頻出のデータベースの正規化を学べるページや、それに関する過去問題(解答・解説つき)も公開されています。
DBOnline
おすすめポイント
- SQLの基本から応用までサンプルを見ながら学ぶことができる
- やりたいことから逆引きでSQL構文を探せる
MySQL、SQLite、PostgreSQLの3つについて学ぶことができます。環境構築を自分でおこなう必要がありますが、インストール手順はもちろんデータベースおよびテーブルの作成についても詳しく書かれています。
難しいと悩む方が多いのが、JOIN句を用いたテーブル結合を使ったデータの取得ですよね。DBOnlineでは内部結合、外部結合をはじめ、具体例を示しながら解説してくれているので、一度難しくて諦めた経験がある方でも理解しやすいと思います。
MySQLとSQLiteの学習ページでは、各データベースの関数の使い方も学ぶことができます。
CODEPREP
SQLのブックはこちら
おすすめポイント
- はじめてSQLを学習する方でも安心!穴埋め形式で課題を解ける
- 画面に表示されているHINTとTIPSでのサポートがていねい
CODEPREPでは学習コースのことを「ブック」と呼び、本を読み進めるように順番に学習をすることで理解が深まっていく形式になっています。
SQLのブックは「SQL超入門」「SQL入門 基本操作編」「SQL入門 レコード操作編」の3つあり、それぞれに目的が設定されていますので自分のレベルに合わせてブックを選んでみてください。
初めて学習するから順番に進めたい!という方は、基本事項を文章で説明している「SQL超入門」で学んでから、「SQL入門 基本操作編」に進んで実際にブラウザ上でSQLを書いて実行する…という流れをおすすめします。
想定される学習時間が示されているため、計画的に取り組むことができます。また、穴埋め形式で問題を解くので自分でいちから書くのがまだ難しい方でも大丈夫です。
Codecademy
SQLコースはこちら
おすすめポイント
- ブラウザ上で演習しながら基本から応用まで着実に学べる
- ビジネスに生かせるデータ分析を学べるコースが用意されている
英語サイトですが、ブラウザ上でSQLを書いて実行できる形式なので、環境構築やデータベース作成などの手順は不要です。
いくつか学習コースがありますが、まずは「Learn SQL」で基本を学ぶことができます。問題を順に解いていくことで先に進める仕組みになっているので、学習内容をしっかり身につけられます。
他の学習サイトとは異なる特徴として、「How to Analyze Business Metrics with SQL」というビジネスにおけるデータ分析の大切さと実践を学べるコースがあることです。
また、「Learn Node-SQLite」ではJavaScript(Node.js)でSQLiteを使う方法が学習できます。少し上級者向けの内容ですが、プログラミング学習中で興味がある方はぜひ挑戦してみてください。
まとめ
SQLの基本と一部応用的な内容まで学べる学習サイトをご紹介しました。
ひとくちに「データの取得」と言っても、複雑な条件指定や複数テーブルを結合したい場合も多く、使いこなせれば自分でデータの分析などもできるようになり非常に便利です。
最初は難しいなと感じるかもしれませんが、学習サイトなどを活用して取り組んでみてください!
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら