IT専門就活エージェントを利用する

IT就活対策
PR

SQLの勉強方法|初心者の練習手順とIT就活への活かし方

表からSQLで必要なデータを取り出し結果を得る流れ
tennis0709closs@gmail.com
記事内に商品プロモーションを含む場合があります

SQL初心者には、小さな表で「抽出→集計→結合」を試し、結果を説明できる成果物にまとめる勉強法をおすすめします。

SQLはエラーなく動いても、数える行や表のつなぎ方が違えば、欲しかった数字とは別の結果が出ます。だからこそ、数行のデータで答えを予想し、実行結果と照合する練習が大切です。

自分に合う練習環境と次に学ぶ操作を選び、学習内容を就活で伝えられる形にする手順を紹介します。

本記事では、SQL初心者の就活生に向けて、練習環境の選び方と勉強の順番、つまずきへの対処、学習成果の活かし方を解説します。

SQLの勉強は小さな表でデータを取り出す練習から

SQLを初めて勉強するなら、数行の表に対してSELECTを書き、結果を見るところから始めてください。

SQLは、データベースに入っているデータを取り出したり、追加・変更したりするための言語です。

例えば読書記録の表なら、書名やジャンルが「列」、1冊分の記録が「行」に当たります。

この表から読み終えた本だけを取り出す、ジャンル別に冊数を数えるといった操作を、SQLで指定できます。

ここで大切なのは、構文を覚えるだけで終わらせないことです。

「この条件なら3行出るはず」と予想してから動かすと、コードとデータの関係がつながります。

結果が違ったときも、数行の表なら目で追って原因を探せます。

反対に、最初から大量のデータや複雑な環境を用意すると、SQLの間違いなのか、準備の問題なのかを分けにくくなります。

まずは用意された練習用の表を使い、1つの条件を変えるたびに結果を確認しましょう。

自分の書いたSQLが何を取り出したのか説明できることを、最初のゴールにすると進めやすいです。

表からSQLで必要なデータを取り出す仕組み
SQLは表から必要なデータを取り出すために使える(編集図)

SQLの勉強が役立つIT職種と学習のゴール

SQLの勉強は、志望する仕事でデータをどう使うかに合わせて進めると、就活にもつなげやすくなります。

システム開発に興味があるなら、入力された情報を保存し、必要な情報を取り出す流れを意識してください。

例えば予約や在庫を扱うシステムでは、画面に表示する内容と、裏側に保存するデータがつながっています。

バックエンド志望なら、検索だけでなく、データの追加や更新まで試す意味があります。

データを扱う職種に興味があるなら、条件に合うデータを集め、目的に合わせて集計する練習がおすすめです。

ただし、SQLが書けるだけで分析の結論まで正しく出せるわけではありません。

何を数えた数字なのか、元のデータに抜けや重複がないかも確認しましょう。

まだ職種を絞れていない学生は、抽出・集計・結合を一度ずつ動かしてみてください。

その中で面白いと感じた作業を、企業研究で仕事内容を読むときの手がかりにできます。

資格名や言語名だけで選ぶより、実際の操作を経験してから仕事を選ぶほうが、自分の関心を具体的にできます。

興味がある仕事まず試したい操作小さな学習目標
システム開発・バックエンド検索・追加・更新入力した情報を保存し、必要な形で取り出す
データを扱う職種抽出・集計・結合条件と集計単位を説明しながら数字を出す
志望する仕事と最初のSQL学習目標
あわせて読みたい
IT職種一覧|29の職種・役割と就活生の選び方
IT職種一覧|29の職種・役割と就活生の選び方

SQLを勉強できる無料サイトと教材の選び方

最初の教材は、すぐSQLを動かせるか、説明を読み進められるかで選びましょう。ここではブラウザ演習と公式チュートリアルの2つを紹介します。

ブラウザで動かすならSQLBolt

環境構築で止まりそうな人には、ブラウザ上でSQLを書いて結果を確かめられるSQLBoltがおすすめです。

公開レッスンには、SELECTによる列の指定から、条件指定、並べ替え、結合、集計へ進む練習が用意されています。

最初のレッスンは登録せずに開けるため、まず1問試してから続けるか判断できます。

説明と課題は英語です。英語を読む負担が大きい場合は、日本語の入門教材を併せて使ってください。

答えを写しただけで次へ進まず、列や条件を1つ変え、結果の違いまで見るのがポイントです。

手元のPCへソフトを入れる前に、SQLでできることを体験する入口として活用しましょう。

教材:SQLBolt

基礎を深めるならPostgreSQLの公式チュートリアル

一つのデータベースで基礎を固めたい人には、PostgreSQLの公式チュートリアルが役立ちます。

第2章では、表の作成、データの追加、検索、結合、集計、更新、削除を順に扱います。

実行にはPostgreSQLと接続環境の準備が必要で、ブラウザ演習のようにページを開くだけでは完結しません。

そのため、最初のSQLを試す段階より、自分の表を作って学び直す段階に向いています。

教材を増やしすぎず、使うデータベースの公式説明へ戻れるようにしておくと、構文の違いで迷う場面を減らせます。

まずはチュートリアルの小さな表で一巡し、それから自分の題材へ置き換えるのがおすすめです。

教材:PostgreSQL公式チュートリアル

SQLの勉強方法を5ステップで進めよう

SQLの勉強は、表を読む→抽出→集計→結合→作成・変更の順に進めましょう。各ステップで「何ができれば次へ進むか」を決めると、教材を眺めるだけの勉強を抜け出せます。

表を読む、抽出、集計、結合、作成と変更の学習順序
SQL学習の5ステップ(編集図)

次のコード例は、下の架空の読書記録を使います。自分の環境で試すときは、STEP5の作成・追加用SQLで表を用意してから実行してください。

STEP1:表・行・列を読み取る

最初に行うのは、表の1行が何を表しているかをつかむことです。

列名だけを見てコードを書き始めず、データを数行読み、文字・数値・日付がどこに入っているか確認します。

読書記録なら1行が1冊なのか、1回の読書なのかで、件数の意味も変わります。

同じ書名が何度も出てくる場合も、すぐに間違いだと決めず、記録の単位を確かめてください。

練習には、教材のサンプルか自分で作った架空データを使いましょう。

学校・アルバイト先の名簿や、他人の個人情報を持ち込む必要はありません。

表の行数、列の意味、1行の単位を説明できたら、実際の抽出へ進めます。

book_idtitlegenre_idpagescompleted
1SQL入門ノート11801
2小さな物語21201
3サーバーの基礎12400
説明用の架空データ。completedは読了=1・未読了=0。genre_idはIT=1・小説=2。

STEP2:SELECT・WHERE・ORDER BYを動かす

次は、必要な列をSELECTで選び、WHEREで行を絞る練習です。

最初はすべての列を表示し、次に書名だけ、さらに特定ジャンルだけというように、変更点を1つずつ増やします。

表示順を変えたいときはORDER BYを使います。

ここで「どの行が、何行、どの順で出るか」を先にメモすると、実行結果が正しいか自分で確かめられます。

コードがエラーなく動いても、ほしいデータを取り出せていなければ、目的は達成できていません。

まずは数行の表を使い、条件を変えた理由と結果を説明しましょう。

同じ操作を、列名や条件の違う表でも書けるようになれば、基本の抽出を使い始める準備ができています。

SELECT title, pages
FROM books
WHERE completed = 1
ORDER BY pages DESC;
titlepages
SQL入門ノート180
小さな物語120
読了した本をページ数の多い順に取り出した結果
SQLBoltの映画データの表、SELECT入力欄、練習課題が表示された実画面
SQLBoltの初回演習。表とSQL入力欄を見比べながら練習できる。出典:SQLBolt「SELECT queries 101」

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_idbooks_count
12
21
同じジャンルの本を数えた結果

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と結果を残す
  • 解説を見ずに同じ操作をやり直す
  • 応募期限を見ながら学習と選考準備を並行する
あわせて読みたい
【IT業界の面接対策】新卒の頻出質問33選と回答例
【IT業界の面接対策】新卒の頻出質問33選と回答例

SQLの学習成果を就活に活かす3ステップ

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

集計を完成させ、READMEへ整理し、志望する仕事につなげる3ステップ
SQL学習を就活で伝わる成果物へまとめる流れ(編集図)

STEP1:架空データで小さな集計を完成させる

まずは、目的を1つ決めた小さな集計を完成させてください。

架空の読書記録なら、ジャンル別の冊数や、読み終えた本の一覧を出すといった題材で十分です。

最初から多くの機能を入れず、どんな情報を知りたいのかを先に決めます。

必要な列とデータを用意し、抽出や集計のSQL、実行結果をセットで保存しましょう。

件数が0のケースや、同じジャンルが複数あるケースも試すと、想定どおりの結果になるか確認できます。

他人の個人情報や公開できない実データを使う必要はありません。

完成したかどうかは、機能の多さよりも、決めた目的を達成し、その結果を自分で確かめたかで判断するのがおすすめです。

STEP2:目的・実行方法・工夫をREADMEに書く

成果物ができたら、何のために作り、どう動かせば同じ結果になるかをREADMEへまとめます。

コードだけを渡すと、見る人は表の意味や実行順から調べなければなりません。

そこで、題材の目的、使用したデータベース、テーブルの内容、実行する順番、期待する結果を添えましょう。

工夫した点は「頑張った」ではなく、どこで結果が合わず、何を変えて解決したかまで書くと伝わりやすいです。

一度完成した資料を見ながら、自分でも最初から操作をやり直してみてください。

手順の抜けに気づけるうえ、あとから見直す学習記録としても使えます。

公開する場合は、ファイルや説明に個人情報・秘密情報が含まれていないか、最後に確認しましょう。

  • 目的:何を知るために作ったか
  • 環境:使用したデータベースと実行方法
  • データ:各列と1行の意味
  • 結果:どのSQLで何が得られるか
  • 工夫:つまずいた点と確かめたこと

STEP3:学習経験を志望職種と選考準備につなげる

最後は、SQLでできるようになったことと、志望する仕事への関心をつなげます。

開発に興味があるなら、情報を保存して取り出す仕組みを試したことを、データ職なら集計の条件を考えた経験を整理しましょう。

学習用の作品を、実務経験として伝える必要はありません。

自分で目的を決め、動かし、結果を確かめた過程が、そのまま説明できる材料になります。

応募先によって求める制作物や技術課題は違うため、募集要項と選考案内も確認してください。

企業選びや選考準備まで一人で進めにくい場合は、就活エージェントを活用するのもおすすめです。

勉強したことを、応募する会社と次の行動につなげていきましょう。

IT就活大学では「IT業界への就職を目指す就活生」を対象に
キャリア選択に役立つ情報を発信しています。

無料でみれるコンテンツのみを配信していますので、
就活生がIT業界の就職で迷わないように拡散をお願いします。
IT就活解説記事
IT就活のいろはを解説!

View More

ABOUT ME
IT就活大学
IT就活大学
IT就活で落単しないために
キャリアを学べるWebサイト
IT就活のWebマーケティング領域を支援してきました。

よくあるプログラミングスクールをはじめたら「月収100万円」みたいな嘘のマーケティング活動をしている会社に嫌気が指す思いでいたので、当ブログを設立。

未来を担う学生が、大人に食い物にされないように、「IT就活における社会の真理」をお伝えするブログです。
記事URLをコピーしました