SQLの勉強方法|初心者の練習手順とIT就活への活かし方
SQL初心者には、小さな表で「抽出→集計→結合」を試し、結果を説明できる成果物にまとめる勉強法をおすすめします。
SQLはエラーなく動いても、数える行や表のつなぎ方が違えば、欲しかった数字とは別の結果が出ます。だからこそ、数行のデータで答えを予想し、実行結果と照合する練習が大切です。
自分に合う練習環境と次に学ぶ操作を選び、学習内容を就活で伝えられる形にする手順を紹介します。
本記事では、SQL初心者の就活生に向けて、練習環境の選び方と勉強の順番、つまずきへの対処、学習成果の活かし方を解説します。
SQLの勉強は小さな表でデータを取り出す練習から
SQLを初めて勉強するなら、数行の表に対してSELECTを書き、結果を見るところから始めてください。
SQLは、データベースに入っているデータを取り出したり、追加・変更したりするための言語です。
例えば読書記録の表なら、書名やジャンルが「列」、1冊分の記録が「行」に当たります。
この表から読み終えた本だけを取り出す、ジャンル別に冊数を数えるといった操作を、SQLで指定できます。
ここで大切なのは、構文を覚えるだけで終わらせないことです。
「この条件なら3行出るはず」と予想してから動かすと、コードとデータの関係がつながります。
結果が違ったときも、数行の表なら目で追って原因を探せます。
反対に、最初から大量のデータや複雑な環境を用意すると、SQLの間違いなのか、準備の問題なのかを分けにくくなります。
まずは用意された練習用の表を使い、1つの条件を変えるたびに結果を確認しましょう。
自分の書いたSQLが何を取り出したのか説明できることを、最初のゴールにすると進めやすいです。

SQLの勉強が役立つIT職種と学習のゴール
SQLの勉強は、志望する仕事でデータをどう使うかに合わせて進めると、就活にもつなげやすくなります。
システム開発に興味があるなら、入力された情報を保存し、必要な情報を取り出す流れを意識してください。
例えば予約や在庫を扱うシステムでは、画面に表示する内容と、裏側に保存するデータがつながっています。
バックエンド志望なら、検索だけでなく、データの追加や更新まで試す意味があります。
データを扱う職種に興味があるなら、条件に合うデータを集め、目的に合わせて集計する練習がおすすめです。
ただし、SQLが書けるだけで分析の結論まで正しく出せるわけではありません。
何を数えた数字なのか、元のデータに抜けや重複がないかも確認しましょう。
まだ職種を絞れていない学生は、抽出・集計・結合を一度ずつ動かしてみてください。
その中で面白いと感じた作業を、企業研究で仕事内容を読むときの手がかりにできます。
資格名や言語名だけで選ぶより、実際の操作を経験してから仕事を選ぶほうが、自分の関心を具体的にできます。
| 興味がある仕事 | まず試したい操作 | 小さな学習目標 |
|---|---|---|
| システム開発・バックエンド | 検索・追加・更新 | 入力した情報を保存し、必要な形で取り出す |
| データを扱う職種 | 抽出・集計・結合 | 条件と集計単位を説明しながら数字を出す |

SQLを勉強できる無料サイトと教材の選び方
最初の教材は、すぐSQLを動かせるか、説明を読み進められるかで選びましょう。ここではブラウザ演習と公式チュートリアルの2つを紹介します。
ブラウザで動かすならSQLBolt
環境構築で止まりそうな人には、ブラウザ上でSQLを書いて結果を確かめられるSQLBoltがおすすめです。
公開レッスンには、SELECTによる列の指定から、条件指定、並べ替え、結合、集計へ進む練習が用意されています。
最初のレッスンは登録せずに開けるため、まず1問試してから続けるか判断できます。
説明と課題は英語です。英語を読む負担が大きい場合は、日本語の入門教材を併せて使ってください。
答えを写しただけで次へ進まず、列や条件を1つ変え、結果の違いまで見るのがポイントです。
手元のPCへソフトを入れる前に、SQLでできることを体験する入口として活用しましょう。
教材:SQLBolt
基礎を深めるならPostgreSQLの公式チュートリアル
一つのデータベースで基礎を固めたい人には、PostgreSQLの公式チュートリアルが役立ちます。
第2章では、表の作成、データの追加、検索、結合、集計、更新、削除を順に扱います。
実行にはPostgreSQLと接続環境の準備が必要で、ブラウザ演習のようにページを開くだけでは完結しません。
そのため、最初のSQLを試す段階より、自分の表を作って学び直す段階に向いています。
教材を増やしすぎず、使うデータベースの公式説明へ戻れるようにしておくと、構文の違いで迷う場面を減らせます。
まずはチュートリアルの小さな表で一巡し、それから自分の題材へ置き換えるのがおすすめです。
SQLの勉強方法を5ステップで進めよう
SQLの勉強は、表を読む→抽出→集計→結合→作成・変更の順に進めましょう。各ステップで「何ができれば次へ進むか」を決めると、教材を眺めるだけの勉強を抜け出せます。

次のコード例は、下の架空の読書記録を使います。自分の環境で試すときは、STEP5の作成・追加用SQLで表を用意してから実行してください。
STEP1:表・行・列を読み取る
最初に行うのは、表の1行が何を表しているかをつかむことです。
列名だけを見てコードを書き始めず、データを数行読み、文字・数値・日付がどこに入っているか確認します。
読書記録なら1行が1冊なのか、1回の読書なのかで、件数の意味も変わります。
同じ書名が何度も出てくる場合も、すぐに間違いだと決めず、記録の単位を確かめてください。
練習には、教材のサンプルか自分で作った架空データを使いましょう。
学校・アルバイト先の名簿や、他人の個人情報を持ち込む必要はありません。
表の行数、列の意味、1行の単位を説明できたら、実際の抽出へ進めます。
| book_id | title | genre_id | pages | completed |
|---|---|---|---|---|
| 1 | SQL入門ノート | 1 | 180 | 1 |
| 2 | 小さな物語 | 2 | 120 | 1 |
| 3 | サーバーの基礎 | 1 | 240 | 0 |
STEP2:SELECT・WHERE・ORDER BYを動かす
次は、必要な列をSELECTで選び、WHEREで行を絞る練習です。
最初はすべての列を表示し、次に書名だけ、さらに特定ジャンルだけというように、変更点を1つずつ増やします。
表示順を変えたいときはORDER BYを使います。
ここで「どの行が、何行、どの順で出るか」を先にメモすると、実行結果が正しいか自分で確かめられます。
コードがエラーなく動いても、ほしいデータを取り出せていなければ、目的は達成できていません。
まずは数行の表を使い、条件を変えた理由と結果を説明しましょう。
同じ操作を、列名や条件の違う表でも書けるようになれば、基本の抽出を使い始める準備ができています。
SELECT title, pages
FROM books
WHERE completed = 1
ORDER BY pages DESC;
| title | pages |
|---|---|
| SQL入門ノート | 180 |
| 小さな物語 | 120 |

STEP3:COUNT・SUMとGROUP BYで集計する
抽出に慣れたら、COUNTやSUMを使ってデータをまとめる練習へ進みます。
COUNTは件数、SUMは数値の合計を求める関数です。
ジャンルごとの冊数を知りたい場合は、GROUP BYで集計の単位を指定します。
集計に入れる行を絞るWHEREと、集計後のグループを絞るHAVINGは、働く段階が異なります。
構文だけ覚えると混同しやすいので、まず元の表を手で数え、SQLの結果と照合してください。
「全体の件数」「ジャンル別の件数」「条件に合うジャンルだけ」の順に試すと違いを追いやすくなります。
結果の数字について、どのデータを何の単位で集めたものか説明できれば、この段階の目標は達成です。
SELECT genre_id, COUNT(*) AS books_count
FROM books
GROUP BY genre_id
ORDER BY genre_id;
| genre_id | books_count |
|---|---|
| 1 | 2 |
| 2 | 1 |
STEP4:JOINで2つの表をつなぐ
1つの表での集計ができたら、JOINを使って2つの表をつなぐ練習をします。
書籍の表とジャンルの表を分けた場合は、両方にあるジャンルIDなどを結合条件にします。
列名が似ているという理由だけで選ばず、同じものを指す値か確認しましょう。
INNER JOINでは条件に一致する組み合わせを取り出し、LEFT JOINでは左側の行を残して、一致しない右側の値をNULLにします。
まず一致する行と一致しない行を1つずつ用意すると、結果の違いを見つけやすいです。
結合前後の行数も比べ、どうしてその結果になったかを確かめてください。
表同士の関係を理解してつなげられると、SQLで扱える題材が広がります。
SELECT books.title, genres.genre_name
FROM books
INNER JOIN genres
ON books.genre_id = genres.genre_id;
STEP5:テーブルの作成・追加・更新を試す
最後に、練習用の小さなテーブルを自分で作り、データを追加・変更してみましょう。
CREATE TABLEで表と列を定義し、INSERTで行を追加します。
保存した内容を書き換えるときはUPDATE、行を削除するときはDELETEを使います。
この練習は、消えても困らない学習用データだけで行ってください。
変更・削除の前に、同じ条件のSELECTで対象行を表示すると、意図した範囲を確かめられます。
特にWHEREを付けないDELETEは全行を削除するため、条件を省かない習慣が大切です。
実行後はもう一度SELECTし、どの行が増え、何が変わったか確認しましょう。
作成から結果確認まで自分で一巡できれば、次は自分の題材で成果物を作れます。
CREATE TABLE genres (genre_id INTEGER, genre_name VARCHAR(30));
CREATE TABLE books (book_id INTEGER, title VARCHAR(100),
genre_id INTEGER, pages INTEGER, completed INTEGER);
INSERT INTO genres VALUES (1, 'IT'), (2, '小説');
INSERT INTO books VALUES
(1, 'SQL入門ノート', 1, 180, 1),
(2, '小さな物語', 2, 120, 1),
(3, 'サーバーの基礎', 1, 240, 0);
SQLの勉強でつまずきやすい3つのポイント
うまくいかないときは、エラーが出る・数字が違う・行数が増えるを分けて考えましょう。症状に合わせて確認する場所を変えると、闇雲な書き換えを減らせます。
エラーが出るときは列名と構文を確かめる
文法エラーが出たら、エラーが示す位置と、表名・列名・記号を先に確認しましょう。
列名の打ち間違い、カンマの抜け、引用符の不一致など、短いSQLでも止まる原因はあります。
長いコードを何度も眺めるより、まず動いていたSELECTだけへ戻すほうが、原因を切り分けやすいです。
そこから条件や並べ替えを1つずつ戻し、どの変更でエラーが出るかを見ます。
別の教材からコードを移した場合は、教材と自分が使っているデータベースの違いも確かめてください。
直ったら、原因と修正内容を一言残しましょう。
次に似たエラーが出たとき、同じ場所で長く止まらずに済みます。
集計値が合わないときは対象行を取り出す
集計値が予想と違うときは、集計する前の行をそのまま取り出すのがおすすめです。
まずWHEREの条件で、必要な行を落としていないか、余計な行を含めていないか確認します。
次に、GROUP BYで指定した単位が、知りたい数字の単位と合っているかを見ます。
COUNT(*)は行数を数えますが、COUNT(列名)はその列がNULLではない行を数えるため、同じ表でも値が異なる場合があります。
ここを曖昧にすると、エラーが出ないまま違う数字を使ってしまいます。
小さな表を手で数え、SQLの結果と比べてからデータを増やしましょう。
数字を出すことと、数字の意味を確かめることをセットにするのが大切です。
JOINで行が増えたらキーの重複を見る
JOINで行が増えたときは、結合に使ったキーが片方の表で重複していないかを確認してください。
左の1行に対して右の表に一致する行が2つあれば、その組み合わせに応じて結果も増えます。
まず結合前の表を並べ、一つの値が何行ずつ存在するかを数えてみましょう。
そのうえで、結合条件が足りないのか、そもそも1対複数の関係なのかを考えます。
結果を減らすためにDISTINCTだけを追加すると、元の関係を理解しないまま問題を隠してしまうことがあります。
どの行とどの行が組になったかを説明できるまで、小さなデータで確かめてください。
結合の結果を予想する練習が、そのままデータを読み解く力につながります。
SQLの勉強時間は到達点で区切る
SQLの勉強時間は、自力でできる操作を増やす単位で区切るのがおすすめです。
PCの操作に慣れているか、プログラミング経験があるか、どこまで学びたいかによって、必要な時間は変わります。
同じ時間教材を読んでも、自分で条件を書き換えた人と、解説を見ただけの人では、次にできることが異なります。
そのため、時間だけで「もう習得した」「自分は遅い」と判断しないでください。
まずは抽出、次に集計、その次に結合というように、次回の勉強でできるようにすることを1つ決めます。
勉強を終えるときは、試したSQL、結果、理解できなかった点を残しましょう。
同じ問題を解説なしでやり直すと、覚えたつもりの部分にも気づけます。
忙しい日は新しい単元を増やすより、前回の操作を短く復習するだけでも構いません。
また、就活の応募期限が近いなら、SQLを完璧にするまで応募を先送りしないことも重要です。
学習と企業研究・選考準備を並行させ、今できることを伝えながら、足りない部分を伸ばしていきましょう。
- 次回できるようにする操作を1つ決める
- 実行したSQLと結果を残す
- 解説を見ずに同じ操作をやり直す
- 応募期限を見ながら学習と選考準備を並行する

SQLの学習成果を就活に活かす3ステップ
学んだ操作は、成果物を完成させる→説明を付ける→志望する仕事へつなぐの3ステップで整理しましょう。小さな題材でも、自分の判断を説明できる形にすることが大切です。

STEP1:架空データで小さな集計を完成させる
まずは、目的を1つ決めた小さな集計を完成させてください。
架空の読書記録なら、ジャンル別の冊数や、読み終えた本の一覧を出すといった題材で十分です。
最初から多くの機能を入れず、どんな情報を知りたいのかを先に決めます。
必要な列とデータを用意し、抽出や集計のSQL、実行結果をセットで保存しましょう。
件数が0のケースや、同じジャンルが複数あるケースも試すと、想定どおりの結果になるか確認できます。
他人の個人情報や公開できない実データを使う必要はありません。
完成したかどうかは、機能の多さよりも、決めた目的を達成し、その結果を自分で確かめたかで判断するのがおすすめです。
STEP2:目的・実行方法・工夫をREADMEに書く
成果物ができたら、何のために作り、どう動かせば同じ結果になるかをREADMEへまとめます。
コードだけを渡すと、見る人は表の意味や実行順から調べなければなりません。
そこで、題材の目的、使用したデータベース、テーブルの内容、実行する順番、期待する結果を添えましょう。
工夫した点は「頑張った」ではなく、どこで結果が合わず、何を変えて解決したかまで書くと伝わりやすいです。
一度完成した資料を見ながら、自分でも最初から操作をやり直してみてください。
手順の抜けに気づけるうえ、あとから見直す学習記録としても使えます。
公開する場合は、ファイルや説明に個人情報・秘密情報が含まれていないか、最後に確認しましょう。
- 目的:何を知るために作ったか
- 環境:使用したデータベースと実行方法
- データ:各列と1行の意味
- 結果:どのSQLで何が得られるか
- 工夫:つまずいた点と確かめたこと
STEP3:学習経験を志望職種と選考準備につなげる
最後は、SQLでできるようになったことと、志望する仕事への関心をつなげます。
開発に興味があるなら、情報を保存して取り出す仕組みを試したことを、データ職なら集計の条件を考えた経験を整理しましょう。
学習用の作品を、実務経験として伝える必要はありません。
自分で目的を決め、動かし、結果を確かめた過程が、そのまま説明できる材料になります。
応募先によって求める制作物や技術課題は違うため、募集要項と選考案内も確認してください。
企業選びや選考準備まで一人で進めにくい場合は、就活エージェントを活用するのもおすすめです。
勉強したことを、応募する会社と次の行動につなげていきましょう。
