無料でSQLを演習できるおすすめサイト5選【理解度チェックテスト付き】

SQLの基礎はわかったけど、書き方が覚えられないな...  
SQLの演習が無料でできるサイトとかがあるといいんだけど...  
すぐにできる演習があれば、それも知りたい!

SQLの基礎がわかっても、その後どうやってスキルを伸ばせば良いかわからない方もいるのではないでしょうか。

SQLは網羅的に学ぼうとすると途端に奥が深くなりますし、悩んでいる方も多いですよね。

この記事では、SQLの演習が無料でできるおすすめサイト5選を紹介します!ただ紹介するだけでなく、具体的な演習問題も用意しているので、SQLのスキルを鍛えたい方におすすめです。

SQLの演習ができるおすすめサイト5選

SQLの演習ができるおすすめサイト

まず、SQLの演習が無料でできる以下5つのサイトについて解説します。特徴も一緒に表にまとめたので、確認してください。

特徴有料版
Progateスライド形式でサクサク学習
TRY
CODE
一緒に学んで即演習
paiza
ラーニング
動画を見ながらコードが書ける
SQL
攻略
シンプルな演習が可能
Tech
Pjin
圧倒的な問題量

次はそれぞれ詳しく解説していきます。

スライド形式でサクサク学習「Progate」

引用元:Progate
有料版 あり
無料版でできること 学習コースⅠ、それぞれのコースの最初の問題
こんな人におすすめ ・基礎から学習したい
・入門向けの演習に挑戦したい

Progateは、プログラミングが学べる学習サービスです。アカウント登録だけですぐにSQLを学べる環境が手に入るので、とてもおすすめです。

SQLの基礎を学ぶコース、SQLを書いて実践する道場コースの2つがあります。

  • ProgateにあるSQLコースの例
    • 学習コース:SQLⅠ
    • 学習コース:SQLⅡ
    • 学習コース:SQLⅢ
    • 道場コース:SQLⅠ
    • 学習コース:SQLⅣ

学習コース:SQLⅠと各コースの初めは、アカウント登録するだけで演習ができます。

また、SQLが書ける方は、道場コースに挑戦してみるのがおすすめです。挑戦してみて、「意外とまだわからないところが多いな...」と感じたら、学習コースで学んでいきましょう。

  • こんな人におすすめ
    • SQLの基礎から演習をしたい人
    • 入門向けの演習から挑戦してみたい人

Progateはこちら

一緒に学んで即演習「TRYCODE」

引用元:TRYCODE
有料版 あり
無料版でできること 複数の演習問題
こんな人におすすめ ・・SQLの書き方を学びながら演習したい人
・演習問題をたくさん解きたい人

2つ目は、TRYCODEです。TRYCODEは、演習問題を解きながら学んでいくことができるサービス

ただ問題が出てきて解くだけでなく、以下の2つのモードがあります。

  • TRYCODEの2つのモード
    • 一緒に解く
    • 演習する

SQLの基礎がわかっているとはいえ、うる覚えなところもありますよね。そんな時は、動画を見ながら一緒に解ける「一緒に解くモード」がおすすめです。慣れてきたら、「演習するモード」でどんどん演習問題を解いていきましょう。

また、自由にSQLを実行することができる「SQL練習場」もあります。テーブル設計済みのデータがある環境でSQLが書けるので、SQLを学ぶときにもおすすめです。

初級トレーニングのいくつかは無料で演習できるので、気になる人はぜひ試してください。

  • こんな人におすすめ
    • SQLの書き方を学びながら演習したい人
    • SQLの演習問題をとにかく解きまくりたい人
    • SQLを書くためのデータがそろった環境が欲しい人

TRYCODEはこちら

動画を見ながらコードが書ける「paizaラーニング」

引用元:paizaラーニング
有料版 あり
無料版でできること SQL入門編1の途中まで、SQL入門編2の全て
こんな人におすすめ ・SQLの基礎を補いたい人
・動画を見ながら演習したい人

paizaラーニングは、動画で学びながらコードを書いて演習できる学習サービス。以下のように4つのエリアに分かれており、知識を定着させながら演習しやすいのが特徴です。

ある程度基礎は分かったけど、まだ余り自信がないなぁ...

と思っている方に、特におすすめのサービスです。初めの演習は無料で行えるので、試しに挑戦してみましょう。

またpaizaラーニングのスキルチェックで高評価を出せば、転職に活用することもできます!転職を目指して学んでいる方にとっては、とても嬉しい機能ですよね。

  • こんな人におすすめ
    • SQLの基礎がまだ不安で演習しつつ補いたい人
    • 動画を見ながら演習するスタイルが好きな人

paizaラーニングはこちら

シンプルな演習が可能「SQL攻略」

引用元:SQL攻略
有料版 なし
無料版でできること 全ての問題
こんな人におすすめ ・文章で読みながら学習したい人
・学んだことをすぐに演習したい人

SQL攻略は、その名の通りSQLの攻略をするための学習サイト。全ての問題を無料で演習できます。

記事としてSQLの知識を解説するだけでなく、記事にセットで実習問題が以下のようにあるのが特徴です。

実際に学んだことをすぐ試せるので、実践的な書き方を手を動かしながら学ぶことができます。

SQLの基礎だけでなく、データベース設計でもつかえる正規化の概念も解説されています。一通り見ながら手を動かすだけで、網羅的な知識がつくのでおすすめです!

  • こんな人におすすめ
    • 動画よりも文字で学びたい人
    • 学んだあとすぐに実践で試す形式が好きな人

SQL攻略はこちら

圧倒的な問題量「Tech Pjin:SQL演習問題」

引用元:Tech Pjin
有料版 なし
無料版でできること 全ての問題
こんな人におすすめ とにかく多くの問題を演習したい人

TECH Pjinは、技術系の記事をまとめているメディアです。「SQL演習問題」というカテゴリがあり、約70個の演習問題の記事が用意されています。

以下の4つのポイントで、問題が用意されています。

  • Tech Pjinの問題記事の4つのポイント
    • 同じテスト環境・データの準備方法
    • 問題文
    • 解答のSQL
    • 解答のSQLになる理由の補足説明

ただ問題と答えがあるだけでなく補足説明までしっかりあるので、わからなかった時に理解しやすいですよね。また自分で環境を構築する必要があるため、作業を通してより実践的なSQLを学習できます。

  • こんな人におすすめ
    • とにかくSQLの演習問題をゴリゴリ解きたい人
    • 演習問題の答えだけでなく補足も見たい人

Tech Pjinはこちら

SQLの基礎演習

SQLの基礎演習

次に、SQLの基礎演習についていくつかご紹介します。

基礎演習問題を通してSQLをどのぐらい理解しているかを確認できるので、ぜひチャレンジしてください。

演習問題を行うため、SQLのインストールが必要です。方法がわからない人は下記の記事を参考にしてください。

【初心者向け】MySQLのインストール方法について徹底解説!
更新日:2022年11月14日

演習に入る前に、演習に使うデータの作り方を解説しますね!

演習に使うデータの作り方

今回演習に使うデータは、以下のとおりです。

使用するテーブル:

使用するテーブル

上記テーブルを用意するために、以下のSQLを実行してください

演習で使うテーブル・レコードを用意するためのSQL:

ユーザ一覧テーブル作成
CREATE TABLE `users` (
    `id` INT(11),
    `name` VARCHAR(30),
    `age` INT(3)
);
 部署所属ユーザ一覧テーブル作成
CREATE TABLE `dept_users` (
    `dept_cd` VARCHAR(50),
    `dept_name` VARCHAR(50),
    `id` INT(11)
);

-- ユーザ一覧テーブルのデータ挿入
INSERT INTO users(id,name,age) VALUES(1,'侍太郎1',22);
INSERT INTO users(id,name,age) VALUES(2,'侍太郎2',23);
INSERT INTO users(id,name,age) VALUES(3,'侍太郎3',25);
INSERT INTO users(id,name,age) VALUES(4,'侍1',27);
INSERT INTO users(id,name,age) VALUES(5,'侍2',21);

-- 部署所属ユーザ一覧テーブルのデータ挿入
INSERT INTO dept_users(dept_cd,dept_name,id) VALUES('A0001','第一開発部',1);
INSERT INTO dept_users(dept_cd,dept_name,id) VALUES('A0001','第一開発部',2);
INSERT INTO dept_users(dept_cd,dept_name,id) VALUES('A0002','第二開発部',3);
INSERT INTO dept_users(dept_cd,dept_name,id) VALUES('A0002','第二開発部',4);
INSERT INTO dept_users(dept_cd,dept_name,id) VALUES('A0002','第二開発部',5);

準備ができたら、早速演習を解いていきましょう。今回は、以下の5つを用意しました。

  • SQLの演習問題
    • SQL演習1:単一テーブルのデータを取得
    • SQL演習2:条件を追加してデータを取得
    • SQL演習3:複数テーブルを結合してデータ取得
    • SQL演習4:サブクエリを使ってデータを取得
    • SQL演習5:サブクエリを応用してデータ更新

「問題文 → 実行結果 → 演習のSQLを書くための補足 → 解答の流れ」で、それぞれ演習を紹介しますね。

SQL演習1:単一テーブルのデータを取得

単一テーブルのデータを取得

1つ目の演習は、単一テーブルのデータ取得です。

  • 問題  

usersテーブル一覧のデータの、全てのデータを表示してください。実行結果が、以下のように表示されたら正解です。

実行結果:

| id | name | age | 
| ---: | --- | ---: | 
| 1 | 侍太郎1 | 22 | 
| 2 | 侍太郎2 | 23 | 
| 3 | 侍太郎3 | 25 | 
| 4 | 侍1 | 27 | 
| 5 | 侍2 | 21 |

上記が上手くいかない方は、SELECT文の基礎を学ぶのがおすすめです。以下で解説しているので、見ながら再挑戦してみましょう。

【SQL】3分でSELECT文を完全マスター!データ取得の基礎から応用まで!
更新日:2022年11月14日

解答のSQLは、以下です。

解答のSQL:

SELECT
  *
FROM
  users;

SQL演習2:条件を追加してデータを取得

条件を追加してデータを取得

2つ目は、条件を追加してデータ取得する演習です。

  • 問題

usersテーブルから、名前に「太郎」が含まれているデータを全て表示してください。実行結果が、以下のように表示されたら正解です。

実行結果:

| id | name | age | 
| ---: | --- | ---: | 
| 1 | 侍太郎1 | 22 | 
| 2 | 侍太郎2 | 23 | 
| 3 | 侍太郎3 | 25 |

上記が上手くいかない方は、WHERE句とLIKE句の使い方を学ぶことがおすすめです。以下で解説しています。

【SQL入門】WHEREで検索条件の指定方法をわかりやすく解説
更新日:2022年11月14日
【SQL】意外と簡単!これならわかるLIKE句でのあいまい検索
更新日:2022年11月14日

解答のSQLは、以下です。

解答のSQL:

-- ①
SELECT
  *
FROM
  users
WHERE
  name LIKE '%太郎%';

SQL演習3:複数テーブルを結合してデータ取得

複数テーブルを結合してデータ取得

3つ目は、複数テーブルを結合してデータを取得する演習です。

  • 問題

usersテーブルとdept_usersテーブルを「id」で結合し、全てのデータを表示してください。ただし、表示する内容は以下の順番にしてください。

  • dept_cd
  • dept_name
  • id
  • age
  • name

実行結果が、以下のように表示されたら正解です。

実行結果:

| dept_cd | dept_name | id | name | age | 
| --- | --- | ---: | --- | ---: | 
| A0001 | 第一開発部 | 1 | 侍太郎1 | 22 | 
| A0001 | 第一開発部 | 2 | 侍太郎2 | 23 | 
| A0002 | 第二開発部 | 3 | 侍太郎3 | 25 | 
| A0002 | 第二開発部 | 4 | 侍1 | 27 | 
| A0002 | 第二開発部 | 5 | 侍2 | 21 |

上記が上手くいかない方は、JOIN句を使ってテーブルを結合する方法を学びましょう。以下で詳しく解説しているので、読んだ後再挑戦してみてください。

【SQL】これで完璧テーブル結合!JOINの種類と使い方を一覧まとめ
更新日:2022年11月14日

解答のSQLは、以下です。

解答のSQL:

SELECT
  dept_users.dept_cd,
  dept_users.dept_name,
  users.id,
  users.name,
  users.age
FROM
  users
  INNER JOIN dept_users
    ON users.id = dept_users.id;

SQL演習4:サブクエリを使ってデータを取得

サブクエリを使った演習

4つ目は、サブクエリを使った演習です。

  • 問題

usersテーブルの中でage(年齢)が23~27のidを取得し、そのidを使ってdept_cd(部署コード)、dept_name(部署名)を表示してください。実行結果が、以下のように表示されたら正解です。

実行結果:

| dept_cd | dept_name | 
| --- | --- | 
| A0001 | 第一開発部 | 
| A0002 | 第二開発部 | 
| A0002 | 第二開発部 |

サブクエリは、初心者が最初に躓きやすいポイントとして有名です。難しいなと感じたら、IN句を使ったサブクエリの作り方を以下を見て学びましょう。

SQLでIN句を使おう!基本からサブクエリ活用方法まで一覧紹介
更新日:2022年11月14日

IN句以外にもサブクエリは便利な使い方が多いので、「サブクエリの知識が弱いな...」と思ったら追加で以下を見るのがおすすめです。

【SQL】5分でわかる! EXISTSでサブクエリを扱う方法
更新日:2022年11月14日

解答のSQLは、以下です。

解答のSQL:

SELECT
  dept_cd,
  dept_name
FROM
  dept_users
WHERE
  id IN (
    SELECT
      id
    FROM
      users
    WHERE
      age BETWEEN 23 AND 27
   );

SQL演習5:サブクエリを応用してデータ更新

サブクエリを応用

5つ目は、サブクエリを応用する演習です。

  • 問題

dept_usersテーブルでdept_cd(部署コード)が「A0001」のidを取得し、usersテーブルのname(名前)を「サブクエリで更新」に変えてください。変えた後、結果確認のためusersテーブルのデータを全て表示してください。

実行結果が、以下のように表示されたら正解です。

実行結果:

| id | name | age | 
| ---: | --- | ---: | 
| 1 | サブクエリで更新 | 22 | 
| 2 | サブクエリで更新 | 23 | 
| 3 | 侍太郎3 | 25 | 
| 4 | 侍1 | 27 | 
| 5 | 侍2 | 21 |

作るのが難しい場合は、SELECT文から作ってみましょう。

dept_usersテーブルでdept_cd(部署コード)が「A0001」のidを取得するSELECT文を作ってから、UPDATE文の条件に入れるのがおすすめです。

UPDATE文になれていない方は、以下を見て学んでから再挑戦するのも一つの手です。

【SQL】これで完璧!UPDATE文の重要テクニックを一覧まとめ
更新日:2022年11月14日

解答のSQLは、以下です。

解答のSQL:

-- サブクエリでデータ更新
UPDATE
  users
SET
  name = 'サブクエリで更新'
WHERE
  id IN (
    SELECT
      id
    FROM
      dept_users
    WHERE
      dept_cd = 'A0001'
   );
   
-- usersテーブルのデータ確認
SELECT *
  FROM users;

挫折なくSQLを習得するなら

ここまでSQL演習できるおすすめの無料サイトを、演習例も交えて紹介しました。ただ、なかには

独学でSQLを習得できるかな...
途中で挫折したらどうしよう…

と不安な方もいますよね。

SQLといったプログラミング言語は手軽に学べるようになった反面いざ勉強を始めると、学習途中に挫折する独学者が多くいます。事実、弊社の調査では

  • 不明点を聞ける環境になかった
  • エラーが解決できなかった
  • モチベーションが続かなかった

などの理由から、87.5%が「プログラミング学習で挫折や行き詰まりを感じた」と回答しています。

プログラミング学習における挫折率の調査
プログラミング学習者の87.5%が挫折を経験したことがある
不明点やエラーが解決できずプログラミングを挫折した人が多数

調査概要:プログラミング学習の挫折に関するアンケート
調査対象:10代〜80代の男女298名
調査期間:2019年8月13日~8月20日
調査方法:インターネット調査
掲載元:PR TIMES

また、多くの無料学習サイトやWebサービスには不明点を質問・相談できる機能がありません。

こうした背景もあってか、プログラミング学習サイトの活用経験者100名に「再度学習サイトで学ぶと仮定した際、利用したいと考える学習サイト」を聞いたところ、50%が「不明点を質問・相談できる学習サイト」と回答しています。

調査概要:プログラミング学習サイトの活用経験がある人への意識調査 
調査期間:2022/9/9~2022/9/19
対象者:プログラミング学習サイトを活用した経験がある10~60代の男女100名
調査媒体:クラウドワークス
掲載元:PR TIMES

いざ独学でSQLを学び始めても、勉強の最中に挫折しまっては学習にかけた時間を悔やむだけでなく「プログラミングを身につけるのって思っていたよりも難しいんだな...」とSQLの習得自体を諦めかねません。

仮にわからないことを飛ばしながら勉強を進めたとしても、ITエンジニアへの転職や副業での収入獲得を実現できるほど実践的なスキルが身につかなければ、結局後悔することになります。

そのため、1人でSQLを習得できるか不安な方は数千円の費用をかけてでも、問題が発生したタイミングで現役エンジニア等に質問できる有料の学習サイトを選ぶのが賢明といえます。

そこで、おすすめしたいのがSAMURAI TERAKOYA(侍テラコヤ)です。

700x700_01 (2) (1)
700x700_02 (1) (1)
700x700_03 (1) (1)
700x700_04 (1) (1)
700x700_05 (1) (1)
700x700_06 (1) (1)
700x700_01 (2) (1)
700x700_02 (1) (1)
700x700_03 (1) (1)
700x700_04 (1) (1)
700x700_05 (1) (1)
700x700_06 (1) (1)
previous arrow
next arrow
SQLを学べる侍テラコヤの教材例

「データベースとSQLの基礎を学ぼう」
データベースやSQLを学びつつ、コマンドの基礎を学習します。

侍テラコヤをおすすめする最大の理由は「月定額2,980円で現役エンジニアに質問しながら学習を進められるコスパの良さ」にあります。

先ほど述べたとおり、独学者の多くは自力でエラーを解決できないためにプログラミング学習を挫折しています。そのため、初学者が現役エンジニアのようなプロに質問や相談ができない環境でプログラミングスキルを習得するのは難易度が高いといえます。

しかし、侍テラコヤでは

  • 現役エンジニアが応える回答率100%のQ%A掲示板
  • 必要に応じて受けられる現役エンジニアとのオンラインレッスン
  • 勉強の進み具合やこれまでの学習時間を確認できる「学習ログ」

といったサポート体制を整えているため、学習中に出てきた不明点を解決しながら挫折なくSQLが習得可能です。下記の口コミからも、侍テラコヤなら挫折しづらい環境で学習を進められるといえます。

出典:侍テラコヤ

また、侍テラコヤは入会金不要・いつでも退会OKに加え、利用から1ヵ月の間は「全額返金保証制度」が適用されるので「他のサービスを選べばよかった」と後悔する心配もありません。

なぜ侍テラコヤがSQLを習得できるのか気になる方はぜひ公式サイトをご覧ください。

公式サイトで詳細を見る

まとめ

今回は、SQLの演習が無料でできるおすすめサイト・具体的な演習問題を紹介しました。

いきなりすべて覚えるのは難しいですが、演習をこなしていくと着実にスキルは伸びていきます。簡単な演習からでいいので、ぜひやってみてください。

またより実践的なスキルをつけたいなら、アプリ開発しながらSQLを学ぶことがおすすめです。初めはシンプルに機能を作り、一通りできたらアプリに必要な機能を追加していくのが挫折しないコツです。

確実に実践的なスキルが身につくので、挑戦してみてください。

なお、下の記事ではSQLの情報と学習方法をまとめていますので、よければ参考にしてください。

SQLとは何か?今、学ぶべきメリットと学習方法を徹底解説!
更新日:2022年11月16日

この記事のおさらい

SQLが無料で学習できるサイトはどんなものがある?  

スライド形式で学べる定番の「Progate」や、演習問題を解きながら実戦形式で学べる「TRYCODE」などがあります。他にも、paizaラーニング、SQL攻略、Tech Pjin等がおすすめです。

この記事の演習を通して何を学べるの?

特定の条件でのデータ取得やデータの更新など、SQLの基本的な操作が学べます。SQLをどの程度操作できるか、確認してみてください。

実践的なスキルを身につけるなら?

自分でアプリ開発をしながらSQLを学ぶことがおすすめです。挫折しないよう、シンプルな機能から始めましょう。

プログラミング学習の挫折率は約90%と言われています。学習を成功させるには、モチベーションを維持して成長を実感できる環境が必要です。

侍エンジニアなら「現役エンジニア講師」、「学習コーチ」、「Q&A掲示板」のトリプルサポート体制であなたの学習をサポートするほか、オーダーメイドカリキュラムで必要なことだけを学べるため、さまざまなランキングでNo1という実績を挙げています。

挫折せず最短でプログラミングを習得したいなら侍エンジニアがおすすめです!

詳しくはこちら

Writer

Sanshiro Wakizaka

フリーランス

北海道出身の30歳で、フリーランスエンジニア兼テックライターとして活動中。新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。

Webアプリ、業務アプリ開発において、要件定義 ~ 運用保守まで様々な経験あり。また3歳の娘がいる1児のパパで、日々娘との時間を確保するために仕事を頑張っています!
侍エンジニアでは、【誰でもわかるレベルのわかりやすさ】を意識して、記事を執筆中。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close