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

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

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

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

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

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

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

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

特徴有料版
Progateスライド形式でサクサク学習
TRYCODE一緒に学んで即演習
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ラーニング

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

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

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

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

paizaラーニングはこちら

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

引用元: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のインストール方法について徹底解説!
更新日 : 2018年12月25日

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

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

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

使用するテーブル:

使用するテーブル

上記テーブルを用意するために、以下の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文を完全マスター!データ取得の基礎から応用まで!
更新日 : 2021年8月1日

解答の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で検索条件の指定方法をわかりやすく解説
更新日 : 2021年8月1日
【SQL】意外と簡単!これならわかるLIKE句でのあいまい検索
更新日 : 2021年8月1日

解答の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の種類と使い方を一覧まとめ
更新日 : 2021年8月1日

解答の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句を使おう!基本からサブクエリ活用方法まで一覧紹介
更新日 : 2021年8月1日

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

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

解答の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文の重要テクニックを一覧まとめ
更新日 : 2021年8月1日

解答の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の情報と学習方法をまとめている記事を用意したので、参考にしてみてください。

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

更に詳しく学びたい方には、弊社が運営するサブスク型のプログラミングスクール「SAMURAI ENGINEER Plus+がおすすめです。

月額2980円(税別)で、主に4つのサービスを提供させていただきます。

  • 現役エンジニアによる月1度の「マンツーマン指導」
  • 平均回答時間30分の「Q&Aサービス」
  • 作りながら学べる28種類の「教材」
  • 学習を記録&仲間と共有できる「学習ログ」

目的にあった教材を選べば、どなたでも効率よく学習できるほか、Q&Aサービスやマンツーマン指導を活用することで、挫折せずにSQLの習得が可能です。

SQLを効率的に学びたい人はもちろん、何から始めたらよいのかわからない方は、ぜひ「SAMURAI ENGINEER Plus+」をご利用ください。

SAMURAI ENGINEER Plus+の詳細はこちら

まとめ

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

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

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

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

この記事のおさらい

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

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

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

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

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

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

Writer

Sanshiro Wakizaka

フリーランス

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

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

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

SAMURAI ENGINEER Pro

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

詳細はこちら

SAMURAI ENGINEER Plus

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

詳細はこちら

SAMURAI ENGINEER Freelance

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

詳細はこちら