BLOGブログ

  • このエントリーをはてなブックマークに追加

2016年度版 無料でSQLの学習ができるサイト11個を調べてみた

2016年度版 無料でプログラミング学習ができるサイト10個を調べてみたでは、プログミング学習サイトについて調査をしましたが、今回はSQLの学習サイトについてです。

ただ、そもそもSQLとはなんでしょうか?

db-sql

それには、SQLと関係が深い「データベース(DB:DataBase)」の説明をする必要がありますが、「データベース(DB:DataBase)」とはデータの集合体という意味です。

つまり、手帳に友達や得意先の名前と電話番号が記載されているなら,それも立派なデータベースですし、電話番号をEXCELで管理している場合には、これでコンピュータが使える「データベース(DB:DataBase)」となります。

しかし、電話帳ぐらいならEXCELでもいいのですが、得意先が増えて担当者も複数人に増え、そこで顧客の売上管理まで行おうとすると、EXCELだと「どれが最新で正しいのデータか分からない」というような事態になってしまい大混乱を招いてしまいます。

こういった時に、「データベース(DB:DataBase)」を使うと、複数の担当者で共有、利用したり、用途に応じて加工や再利用がしやすいように、一定の形式で作成や管理ができるようになりますが、世の中で一般的に使われているのは「データベース(DB:DataBase)」の中でも「関係データベース(RDB:Relational DataBase)」と呼ばれるものになります。

この、「関係データベース(RDB:Relational DataBase)」には、3つの大きな特徴があります。

  1. ファイル型ではなくリレーション型のデータ保管型式を採用している
  2. データの取り扱いが行(レコード)単位ではなく列(フィールド)単位になっている
  3. 簡単な操作言語(高水準言語)が準備されている

これを説明するために、顧客名が入った「顧客表」には顧客番号、会社名、住所、電話番号が入っていて、「注文表」には顧客番号、注文日、商品名、個数、売上金額が入っている、という二つのデータがある場合で見てみましょう。

まず、「ファイル型ではなくリレーション型のデータ保管型式を採用している」というのは、ファイル型だと一つ一つのファイル毎にしかアクセスができないので、「注文表」だけを見てもどこの会社名の注文かがわかりませんが、リレーション型だと顧客番号で二つのファイルをつなげてデータを取り出せる、という事です。

次に、「データの取扱がレコード(行)単位ではなく属性(列)単位になっている」というのは、「顧客表」には一つの行(レコード)に顧客番号、会社名、住所、電話番号が入っていますが、データの取り扱いが行(レコード)単位だと、一行全ての情報を表示しますが、列(フィールド)単位だと会社名だけ、電話番号だけ、という形でのデータ取り出しができる、という事です。

最後の「簡単な操作言語(高水準言語)が準備されている」というのは、「データベース(DB:DataBase)」からデータを取り出すために、簡単な操作言語が用意されているという事です。

この、「関係データベース(RDB:Relational DataBase)」を操作するためのシステムが「関係データベース管理システム (RDBMS:Relational DataBase Management System)」と呼ばれるものであり、SQLはリレーショナル・データベース管理システム(RDBMS)を操作するための言語です。

やっと、SQLの説明にまで辿り着きました。

つまり、私たちはSQLを使うことによって「関係データベース管理システム (RDBMS:Relational DataBase Management System)」に命令を出して、必要なデータを「関係データベース(RDB:Relational DataBase)」に入力したり、入力したデータを取得(表示)することができるのです。

この便利なSQLですが、ITエンジニアの方でも苦手という方もおられると思います。

そこで今回は、SQLについての学習サービスを提供しているサイトについて、初心者が楽しく簡単に学べるかどうかを調べてみました。

インタラクティブに学べるサービス

実践的なSQLの能力を身につけるためには、実際にSQLを入力して学ぶ事が重要ですので、前回と同じく、まずはインタラクティブに学べるサイトから見ていきましょう。

1.未経験からやさしく学べる無料プログラミング研修「TRYCODE」

pasona-iterative

http://www.pasonacareer.biz/programming_training/

一緒に解く動画を見る、解説を読んで理解をする、実際にコードを書いて学ぶ、の3つを繰り返す事で、実践的なプログラミングを学ぶことができるプログラミング教育サービス「TRYCODE」が、パソナキャリアと連携する事で無料提供されているサービスです。

実行環境を用意せずにブラウザだけでSQLを動かせますので手軽に始められ、SQLを書いた実行結果を見ながら実践的に学ぶ事ができます。

さらに、SQLを解いたスピードや正解までの誤答数などで、演習問題、単元毎に様々な形で自分の獲得したスキルレベルを確認できるようになっていますので、ゲーム感覚で点数を上げて行く事で学習のモチベーションを維持しながら続けられる工夫がされています。

無料で受けられるカリキュラムとしては、データベースやSQLとは/すべての列の表示/指定した列の表示/重複を1つにまとめて表示/関数を使った値の加工/単一の条件/LIKE検索/複数の条件/IN、BETWEENを使った検索/集計関数/グルーピング/集計結果に対する条件/並び替え/レコードの追加(基本)/レコードの更新(基本)/レコードの削除(基本)と、「SQL」の基本については全て網羅されています。

2.SQL学習 -分かりやすい説明とオンラインでの練習

studybyyourself

http://studybyyourself.com/seminar/sql/course/?lang=ja

解説と演習問題を交互に繰り返して「SQL」を学ぶサイト。

アカウント作成の必要なしに利用でき、選択肢によるクイズや実行環境を用意せずにブラウザだけでSQLを動かせる演習も用意されていますので、思い立ったらすぐに学習を始められます。

無料で受けられるカリキュラムとしては、基礎コースがイントロダクション/実体[エンティティ]と表[テーブル]/簡単なクエリ/フォーマッティングとエイリアス/集約関数/結合/サブグループ(下位群)/サブクエリ/ソートと制限/レビュー/アドバイス、上級コースが外部結合(上級者向け)/再帰的接続(上級者向け)/導出表/導出表/導出表となっており、一通りのコースが用意されていますが、上級コースの一部は日本語化されていません。

また、説明が非常に簡素なのと、各章で用意されている演習問題はあまり多くなく、上級コースでは日本語がないものもありますので、初心者がこれだけでSQLを学ぶのは少し大変かもしれませんが、アカウント作成なしでできるというのは、かなり魅力的です。

3.SQL攻略 – 実行すれば理解できる!

sql%e6%94%bb%e7%95%a5

http://sql.main.jp/

SQLについての解説と、実際にSQLを書いて学ぶ実習課題とでSQLを学べるサイト。

こちらも、実行環境を用意せずにブラウザだけでSQLを動かせますので手軽に始められ、SQLを書いた実行結果を見ながら学べますが、正誤判定はできませんので、自分で吐き出される結果を見て学ぶ必要があります。

「基本情報とITパスポート試験のSQL対策の決定版」とサイトで謳われているように、基本情報処理技術者や、ITパスポート試験対策、初級システムアドミニストレータの過去問が用意されているため、これらの資格を取るためにはいいのですが、SQLを学ぶという部分では解説コンテンツが物足りないところもあります。

座学で学ぶサービス

解説を読むだけのサービスは、書籍を読むのと同様に「SQLを自分一人で学ぶ」という強い意志を持って読み進めないと、すぐに挫折をしてしまいます。

また、実際にSQLを書かずに進めると、わかったつもりでも実際に書いてみると上手く動かないという事もありますので、インタラクティブに学べるサービスと併用するか、誰か質問をできる人が周りにいる場合には有効なサービスです。

あと、SQLの実行については、Cloud9などのオンラインIDEを使って、学んだ事を実践しながら学ぶのが望ましいでしょう。

ちなみに、Cloud9の使い方は、以下をご覧いただければと思います。
簡単にプログラミング環境が構築できる「Cloud9」の始め方(前篇)
簡単にプログラミング環境が構築できる「Cloud9」の始め方(中篇)
簡単にプログラミング環境が構築できる「Cloud9」の始め方(後篇)

4.TECHSCORE

techscore

http://www.techscore.com/tech/sql/index.html/

「Webアプリ開発エンジニアのための技術情報サイト」と謳っているサイトのSQL解説。

解説はかなり優しく行われており、用意されている実習課題を解きながら学んでいく事ができますので、初心者でも学びやすいコンテンツとなっています。

ただ、実習問題は別途SQLを実践するための開発環境が必要になるので、間違った時にどうすればいいのかがわからなくなった場合に周りに聞ける人がいない初心者にとっては厳しいかもしれません。

5.SQL ひっそり散歩

sql%e3%81%b2%e3%81%a3%e3%81%9d%e3%82%8a%e6%95%a3%e6%ad%a9

もともとSQL初心者だった方が、SQLを覚えて解説をされているサイトです。

SQLの解説については、結構あっさりした書き方がされているので、初心者の方では好き嫌いが分かれそうです。

XAMPPというApache WebサーバーとMySQL、PHP、Perl、FTPサーバー、phpMyAdminをパッケージ化したものを、PCにインストールして動作環境を作る前提となっていますので、初心者の方はCloud9などのオンラインIDEを使うのが簡単だと思います。

6.MySQL初心者入門講座

mysql%e5%88%9d%e5%bf%83%e8%80%85%e5%85%a5%e9%96%80%e8%ac%9b%e5%ba%a7

http://mysqlweb.net/

MySQL初心者を対象に、Windows PCへのダウンロードからインストール、データベース作成、ユーザー作成、テーブル作成、SQL文まで図を使って詳細に解説しているサイトです。

コマンドプロンプトを起動しての操作を、画面キャプチャで説明をしていますので、手順に沿って作業をしていく形で学ぶ事ができますが、初心者にとってはMySQLのインストールを行って、コマンドプロンプトの操作を行うという点で、最初のハードルが高いように思います。

7.SQL入門

sql%e5%85%a5%e9%96%80

http://www.1keydata.com/jp/sql/

SQLの解説というよりも、SQLコマンド、テーブル処理、SQL プログラミングというように、SQLの問題解決のためのヒントが書いてあるサイト。

SQLを学んだ後に、索引的に使うとより理解が深まると思います。

8.SQL Server入門

sql-server-%e5%85%a5%e9%96%80

http://sql55.com/

基本的にSQLを学ぶサイトと言えば、MySQLやPostgreSQLといったオープンソースのDBを対象に解説がされている事が多いのですが、こちらはMicrosftのSQL Serverの入門サイトとなっています。

動画の閲覧をメインに使ったサービス

SQLについても、動画は座学がメインとなりますので、SQLに対する理解度を深めるためには、最初から他のサービスと併用するのがいいと思います。

9.ドットインストール

dotinstall

https://dotinstall.com/

基本的に、全て3分で完結する動画でプログラミングを学ぶことができるWebサービスですが、DBについても動画が用意されています。

対応してるDBは、MongoDB入門、MySQL入門、PostgreSQL入門、Redis入門、SQLite入門。

月額980円を支払ってプレミアム会員になると、中上級者向けのプレミアムレッスン動画や、文字起こしテキスト、ソースコードの閲覧、レッスン動画の倍速再生などの機能が使えるようになります。

海外のサイト

英語のサイトとなりますので、英語が苦手だと解説を読むのが厳しいですが、内容的にはかなり充実しています。

10.SQLZOO

sqlzoo

http://sqlzoo.net/

SQLについての解説と、実際にSQLを書いて学ぶexampleとでSQLを学べるサイト。

SQL Tutorial、Reference、Assessments: More involved examples for confident users、SQL Resourcesといったコンテンツが用意されており、記事のボリュームはかなりあります。

実行環境を用意せずにブラウザだけでSQLを動かせますので手軽に始められ、SQLを書いた実行結果を見ながら学べます。

問題に合わせて、SQLの一部を書き直して実行をする事で学んでいきますので、正解を出しやすいのですが、SQL文全体を書く練習をしないと、実際の業務では書けないと思いますので、別でSQLを練習する環境を用意するのが望ましいですね。

11.SQLBolt

sqlbolt

https://sqlbolt.com/

SQLについての解説と、実際にSQLを書いて学ぶExerciseを使ってSQLを学べるサイト。

こちらも実行環境を用意せずにブラウザだけでSQLを動かせますので手軽に始められ、SQLを書いた実行結果を見ながら学べます。

解説がしっかり用意されており、ExerciseではステップでSQLを書いていくようになっていて、入力をして正解を出すと、自動で次のステップに進んでいきます。

課題は、該当の部分を入れ替えて行く形なので、比較的簡単に進めていけますが、SQLを本当の理解するためにはExercise何度も繰り返して知識を定着させる「反復教育」を行う方がいいと思われます。

「反復学習」で知識を定着させる事が重要

インタラクティブに学ぶもの、座学で学ぶもの、動画で学ぶものを見てきましたが、プログラミングを学ぶ上で知識を定着させるためには実際に手を動かして書く、という事が重要ですので、SQLを学ぶ際にも何度も書く「反復教育」をしないと意味がありません。

書籍だけでプログラミング言語を理解できる人もおられるとは思いますが、初心者の多くは解説を読んだだけでは学習のモチベーションを維持できず、飽きてしまって挫折する例を数多く見てきました。

そのため、どのサービスでも学習をした後には手を動かして何度もSQLを書くを心掛け、繰り返し学ぶ事ができれば、学習に対するモチベーションを維持させつつ、初心者からの脱却ができると思います。

ランキング

最近の投稿

アーカイブ

カテゴリー

RSS