SQLの基礎はわかったけど、書き方が覚えられないな…
SQLの演習が無料でできるサイトとかがあるといいんだけど…
すぐにできる演習があれば、それも知りたい!
SQLの基礎がわかっても、その後どうやってスキルを伸ばせば良いかわからない方もいるのではないでしょうか。
SQLは網羅的に学ぼうとすると途端に奥が深くなりますし、悩んでいる方も多いですよね。
この記事では、SQLの演習が無料でできるおすすめサイト6選を紹介します!ただ紹介するだけでなく、具体的な演習問題も用意しているので、SQLのスキルを鍛えたい方におすすめです。
- SQLの無料練習サイトは「侍テラコヤ」がおすすめ
- SQLの習得にはデータベースを活用した実習が欠かせない
なお、どのプログラミング言語を学べばいいのか、どう学習を進めればいいのかなどがあいまいな人は「プログラミング学習プラン診断」をお試しください。
かかる時間は1分ほど。4つの質問に答えるだけで、あなたにあう言語や学習プランを診断してもらえます。
これからプログラミングを学ぼうとしている人は、ぜひ一度お試しください。
本記事の解説内容に関する補足事項
本記事はプログラミングやWebデザインなど、100種類以上の教材を制作・提供する「侍テラコヤ」、4万5,000名以上の累計指導実績を持つプログラミングスクール「侍エンジニア」、を運営する株式会社SAMURAIが制作しています。
また、当メディア「侍エンジニアブログ」を運営する株式会社SAMURAIは「DX認定取得事業者」に選定されており、プログラミングを中心としたITに関する正確な情報提供に努めております。
記事制作の詳しい流れは「SAMURAI ENGINEER Blogのコンテンツ制作フロー」をご確認ください。
当ブログがオススメする
SQL学習におすすめの
無料プログラミングサイト3選
1位:侍テラコヤ | 2位:Progate | 3位:ドットインストール | |
---|---|---|---|
サイト名 | |||
学べる内容 | SQL、Java、HTML/CSS、JavaScript、jQuery、Bootstrap、PHP、Laravel、Ruby、Ruby on Rails、Python、WordPress、Cloud9、Git、AWS 、ChatGPT、Webデザインなど | SQL、Java、HTML/CSS、JavaScript、PHP、Ruby、Python、Go、Git、 など | SQL、Java、HTML/CSS、JavaScript、Ruby、Python、C言語 など |
質問 相談サポート | |||
練習問題の数 | |||
特徴 | 現役エンジニアとのマンツーマンレッスン 回答率100%のQ&A掲示板が使い放題 実践的なスキルを身につけられる課題機能 | 環境構築をしなくても学べる イラスト付きのスライド式教材 スマホアプリでも学べて手軽 | レッスン動画でインプット可能 3分の簡単な動画で手軽に学べる 有料プランなら質問ができる |
詳細 | 公式サイト | 公式サイト | 公式サイト |
SQLの演習ができるおすすめサイト6選
まず、SQLの演習が無料でできる以下5つのサイトについて解説します。特徴も一緒に表にまとめたので、確認してください。
次はそれぞれ詳しく解説していきます。
1位:現役エンジニアに質問できる「侍テラコヤ」
プロに相談したり、仲間を見つけたりしながらSQLを学びたい。
でも費用は抑えたい。
そんな人におすすめなのが、登録無料ではじめられる「侍テラコヤ(SAMURAI TERAKOYA)」です。
データベースの概要理解からSQLの基礎を学び、データを自由に扱える状態を目指すことが可能です。
また、教材以外のサポートがとても充実しており、現役ITエンジニアとのマンツーマンオンラインレッスンを受けられるほか、Q&A掲示板での悩み相談もできるのも嬉しいポイントです。
安心できる環境でSQLを学ぶなら、ぜひ検討しておきたい学習サイトと言えるでしょう。
項目 | 概要 |
学習サイト名 | 侍テラコヤ(SAMURAI TERAKOYA) |
運営会社 | 株式会社SAMURAI |
学習目的 | 実践力、資格取得 |
教材形式 | ZOOMレッスン、動画 |
対象レベル | 初心者~上級者 |
支援コンテンツ | Q&A掲示板、転職・就職サポート |
月額費用 | 0円~(有料プランは2,980円~) |
\ 現役エンジニアと1on1レッスンが可能!/
公式サイトで詳細を見る
2位:スライド形式でサクサク学習「Progate」
有料版 | あり |
無料版でできること | 学習コースⅠ、それぞれのコースの最初の問題 |
こんな人におすすめ | ・基礎から学習したい ・入門向けの演習に挑戦したい |
Progateは、プログラミングが学べる学習サービスです。アカウント登録だけですぐにSQLを学べる環境が手に入るので、とてもおすすめです。
SQLの基礎を学ぶコース、SQLを書いて実践する道場コースの2つがあります。
- ProgateにあるSQLコースの例
- 学習コース:SQLⅠ
- 学習コース:SQLⅡ
- 学習コース:SQLⅢ
- 道場コース:SQLⅠ
- 学習コース:SQLⅣ
学習コース:SQLⅠと各コースの初めは、アカウント登録するだけで演習ができます。
また、SQLが書ける方は、道場コースに挑戦してみるのがおすすめです。挑戦してみて、「意外とまだわからないところが多いな…」と感じたら、学習コースで学んでいきましょう。
- こんな人におすすめ
- SQLの基礎から演習をしたい人
- 入門向けの演習から挑戦してみたい人
3位:一緒に学んで即演習「TRYCODE」
有料版 | あり |
無料版でできること | 複数の演習問題 |
こんな人におすすめ | ・・SQLの書き方を学びながら演習したい人 ・演習問題をたくさん解きたい人 |
2つ目は、TRYCODEです。TRYCODEは、演習問題を解きながら学んでいくことができるサービス。
ただ問題が出てきて解くだけでなく、以下の2つのモードがあります。
- TRYCODEの2つのモード
- 一緒に解く
- 演習する
SQLの基礎がわかっているとはいえ、うる覚えなところもありますよね。そんな時は、動画を見ながら一緒に解ける「一緒に解くモード」がおすすめです。慣れてきたら、「演習するモード」でどんどん演習問題を解いていきましょう。
また、自由にSQLを実行することができる「SQL練習場」もあります。テーブル設計済みのデータがある環境でSQLが書けるので、SQLを学ぶときにもおすすめです。
初級トレーニングのいくつかは無料で演習できるので、気になる人はぜひ試してください。
- こんな人におすすめ
- SQLの書き方を学びながら演習したい人
- SQLの演習問題をとにかく解きまくりたい人
- SQLを書くためのデータがそろった環境が欲しい人
4位:動画を見ながらコードが書ける「paizaラーニング」
有料版 | あり |
無料版でできること | SQL入門編1の途中まで、SQL入門編2の全て |
こんな人におすすめ | ・SQLの基礎を補いたい人 ・動画を見ながら演習したい人 |
paizaラーニングは、動画で学びながらコードを書いて演習できる学習サービス。以下のように4つのエリアに分かれており、知識を定着させながら演習しやすいのが特徴です。
ある程度基礎は分かったけど、まだ余り自信がないなぁ…
と思っている方に、特におすすめのサービスです。初めの演習は無料で行えるので、試しに挑戦してみましょう。
またpaizaラーニングのスキルチェックで高評価を出せば、転職に活用することもできます!転職を目指して学んでいる方にとっては、とても嬉しい機能ですよね。
- こんな人におすすめ
- SQLの基礎がまだ不安で演習しつつ補いたい人
- 動画を見ながら演習するスタイルが好きな人
5位:シンプルな演習が可能「SQL攻略」
有料版 | なし |
無料版でできること | 全ての問題 |
こんな人におすすめ | ・文章で読みながら学習したい人 ・学んだことをすぐに演習したい人 |
SQL攻略は、その名の通りSQLの攻略をするための学習サイト。全ての問題を無料で演習できます。
記事としてSQLの知識を解説するだけでなく、記事にセットで実習問題が以下のようにあるのが特徴です。
実際に学んだことをすぐ試せるので、実践的な書き方を手を動かしながら学ぶことができます。
SQLの基礎だけでなく、データベース設計でもつかえる正規化の概念も解説されています。一通り見ながら手を動かすだけで、網羅的な知識がつくのでおすすめです!
- こんな人におすすめ
- 動画よりも文字で学びたい人
- 学んだあとすぐに実践で試す形式が好きな人
6位:圧倒的な問題量「Tech Pjin:SQL演習問題」
有料版 | なし |
無料版でできること | 全ての問題 |
こんな人におすすめ | とにかく多くの問題を演習したい人 |
TECH Pjinは、技術系の記事をまとめているメディアです。「SQL演習問題」というカテゴリがあり、約70個の演習問題の記事が用意されています。
以下の4つのポイントで、問題が用意されています。
- Tech Pjinの問題記事の4つのポイント
- 同じテスト環境・データの準備方法
- 問題文
- 解答のSQL
- 解答のSQLになる理由の補足説明
ただ問題と答えがあるだけでなく補足説明までしっかりあるので、わからなかった時に理解しやすいですよね。また自分で環境を構築する必要があるため、作業を通してより実践的なSQLを学習できます。
- こんな人におすすめ
- とにかくSQLの演習問題をゴリゴリ解きたい人
- 演習問題の答えだけでなく補足も見たい人
SQLの基礎演習
次に、SQLの基礎演習についていくつかご紹介します。
基礎演習問題を通してSQLをどのぐらい理解しているかを確認できるので、ぜひチャレンジしてください。
演習問題を行うため、SQLのインストールが必要です。方法がわからない人は下記の記事を参考にしてください。
演習に入る前に、演習に使うデータの作り方を解説しますね!
演習に使うデータの作り方
今回演習に使うデータは、以下のとおりです。
使用するテーブル:
上記テーブルを用意するために、以下の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を書くための補足 → 解答の流れ」で、それぞれ演習を紹介しますね。
\ 現役エンジニアと1on1レッスンが可能!/
侍テラコヤ詳細を見る
SQL演習1:単一テーブルのデータを取得
1つ目の演習は、単一テーブルのデータ取得です。
- 問題
usersテーブル一覧のデータの、全てのデータを表示してください。実行結果が、以下のように表示されたら正解です。
実行結果:
| id | name | age | | ---: | --- | ---: | | 1 | 侍太郎1 | 22 | | 2 | 侍太郎2 | 23 | | 3 | 侍太郎3 | 25 | | 4 | 侍1 | 27 | | 5 | 侍2 | 21 |
上記が上手くいかない方は、SELECT文の基礎を学ぶのがおすすめです。以下で解説しているので、見ながら再挑戦してみましょう。
解答のSQLは、以下です。
解答のSQL:
SELECT * FROM users;
SQL演習2:条件を追加してデータを取得
2つ目は、条件を追加してデータ取得する演習です。
- 問題
usersテーブルから、名前に「太郎」が含まれているデータを全て表示してください。実行結果が、以下のように表示されたら正解です。
実行結果:
| id | name | age | | ---: | --- | ---: | | 1 | 侍太郎1 | 22 | | 2 | 侍太郎2 | 23 | | 3 | 侍太郎3 | 25 |
上記が上手くいかない方は、WHERE句とLIKE句の使い方を学ぶことがおすすめです。以下で解説しています。
解答の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は、以下です。
解答の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句を使ったサブクエリの作り方を以下を見て学びましょう。
IN句以外にもサブクエリは便利な使い方が多いので、「サブクエリの知識が弱いな…」と思ったら追加で以下を見るのがおすすめです。
解答の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は、以下です。
解答のSQL:
-- サブクエリでデータ更新 UPDATE users SET name = 'サブクエリで更新' WHERE id IN ( SELECT id FROM dept_users WHERE dept_cd = 'A0001' ); -- usersテーブルのデータ確認 SELECT * FROM users;
挫折なくSQLを練習して習得するなら
ここまでSQL演習できるおすすめの無料サイトを、演習例も交えて紹介しました。ただ、なかには
途中で挫折したらどうしよう…
と不安な方もいますよね。
SQLといったプログラミング言語は手軽に学べるようになった反面いざ勉強を始めると、学習途中に挫折する独学者が多くいます。事実、弊社の調査では
- 不明点を聞ける環境になかった
- エラーが解決できなかった
- モチベーションが続かなかった
などの理由から、87.5%が「プログラミング学習で挫折や行き詰まりを感じた」と回答しています。
また、多くの無料学習サイトやWebサービスには不明点を質問・相談できる機能がありません。
こうした背景もあってか、プログラミング学習サイトの活用経験者100名に「再度学習サイトで学ぶと仮定した際、利用したいと考える学習サイト」を聞いたところ、50%が「不明点を質問・相談できる学習サイト」と回答しています。
いざ独学でSQLを学び始めても、勉強の最中に挫折しまっては学習にかけた時間を悔やむだけでなく「プログラミングを身につけるのって思っていたよりも難しいんだな…」とSQLの習得自体を諦めかねません。
仮にわからないことを飛ばしながら勉強を進めたとしても、ITエンジニアへの転職や副業での収入獲得を実現できるほど実践的なスキルが身につかなければ、結局後悔することになります。
そのため、1人でSQLを習得できるか不安な方は数千円の費用をかけてでも、問題が発生したタイミングで現役エンジニア等に質問できる有料の学習サイトを選ぶのが賢明といえます。
そこで、おすすめしたいのが「侍テラコヤ」です。
SQLを学べる侍テラコヤの教材例
「データベースとSQLの基礎を学ぼう」
データベースやSQLを学びつつ、コマンドの基礎を学習します。
侍テラコヤをおすすめする最大の理由は「登録無料で現役エンジニアに質問しながら学習を進められるコスパの良さ」にあります。
先ほど述べたとおり、独学者の多くは自力でエラーを解決できないためにプログラミング学習を挫折しています。そのため、初学者が現役エンジニアのようなプロに質問や相談ができない環境でプログラミングスキルを習得するのは難易度が高いといえます。
しかし、侍テラコヤでは
- 現役エンジニアが応える回答率100%のQ%A掲示板
- 必要に応じて受けられる現役エンジニアとのオンラインレッスン
- 勉強の進み具合やこれまでの学習時間を確認できる「学習ログ」
といったサポート体制を整えているため、学習中に出てきた不明点を解決しながら挫折なくSQLが習得可能です。
下記の口コミからも、侍テラコヤなら挫折しづらい環境で学習を進められるといえます。
また、侍テラコヤは入会金不要・いつでも退会OKに加え、「無料会員登録」でお試し利用ができるので「他のサービスを選べばよかった」と後悔する心配もありません。
SQLを習得したい方はぜひ公式サイトをご覧ください。
公式サイトで詳細を見るまとめ
今回は、SQLの演習が無料でできるおすすめサイト・具体的な演習問題を紹介しました。
いきなりすべて覚えるのは難しいですが、演習をこなしていくと着実にスキルは伸びていきます。簡単な演習からでいいので、ぜひやってみてください。
またより実践的なスキルをつけたいなら、アプリ開発しながらSQLを学ぶことがおすすめです。初めはシンプルに機能を作り、一通りできたらアプリに必要な機能を追加していくのが挫折しないコツです。
確実に実践的なスキルが身につくので、挑戦してみてください。
なお、下の記事ではSQLの情報と学習方法をまとめていますので、よければ参考にしてください。
\ 現役エンジニアと1on1レッスンが可能!/
侍テラコヤ詳細を見る
この記事のおさらい
スライド形式で学べる定番の「Progate」や、演習問題を解きながら実戦形式で学べる「TRYCODE」などがあります。他にも、paizaラーニング、SQL攻略、Tech Pjin等がおすすめです。
特定の条件でのデータ取得やデータの更新など、SQLの基本的な操作が学べます。SQLをどの程度操作できるか、確認してみてください。
自分でアプリ開発をしながらSQLを学ぶことがおすすめです。挫折しないよう、シンプルな機能から始めましょう。
\ 現役エンジニアと1on1レッスンが可能!/
侍テラコヤ詳細を見る