Day1 後半
Excelとの違いを理解し、「集合としてデータを見る」SQLの思考を身につける
前半では、データベースの正体とテーブル・行・列の意味をしっかり固めました。
後半では、初心者が必ずつまずく 「Excel と SQL の決定的な違い」 を、例題を使って深く理解していきます。
ここを理解すると、SQL が“ただの文法”ではなく、“データを扱うための考え方”だと分かり、学習効率が一気に上がります。
Excelとデータベースの本質的な違い
見た目は似ているが、思想がまったく違う
Excelもデータベースも「表」を扱いますが、目的が根本的に違います。
Excelは、人間が目で見て、手で編集するためのツールです。
データベースは、機械(プログラム)が大量のデータを安全に扱うための仕組みです。
この違いが、SQLの“集合操作”という考え方につながります。
Excelは「1行ずつ見る」
SQLは「行の集まり(集合)として扱う」
Excelでは、次のように“1行ずつ”処理する感覚があります。
1行目を見て条件に合うか判断する。
次に2行目を見る。
次に3行目を見る。
しかし SQL は違います。
SQL は 「テーブル全体をひとつの集合として扱い、条件に合う集合を取り出す」 という考え方で動きます。
例題:20歳以上のユーザーを取り出す
Excel的な思考とSQL的な思考の違いが一瞬で分かる例
Excel的な思考では、次のように考えます。
1行目の age を見る。
20以上なら残す。
2行目を見る。
20以上なら残す。
…を繰り返す。
SQLでは、たった1行で終わります。
SELECT * FROM users
WHERE age >= 20;
SQLこの1文で、
「users テーブルの中から、age が 20 以上の行だけを取り出す」
という集合操作が完了します。
SQLは“1行ずつ処理する”のではなく、
条件に合う集合を丸ごと取り出す のです。
集合として扱うメリット
SQLが強力な理由はここにある
集合として扱うことで、次のようなメリットがあります。
大量データでも高速に処理できる。
人間の手作業がないため、ミスが起きない。
条件を変えるだけで柔軟に抽出できる。
集計が圧倒的に強い。
たとえば平均年齢を出す場合、Excelでは関数を入れたり範囲を選んだりしますが、SQLなら次の1行です。
SELECT AVG(age) FROM users;
SQLExcelではやりがちなNG例
データベースでは絶対にやらない理由を理解する
Excelではよくやるけれど、データベースでは絶対にやらないことがあります。
空白行を入れる
Excelでは見やすくするために空白行を入れますが、データベースでは空白行も「意味のあるデータ」として扱われてしまいます。
1セルに複数の情報を入れる
Excelでは次のような書き方をしがちです。
東京都江東区(サンプルハイツ)
データベースでは、住所と建物名は別の列に分けます。
理由は、検索・集計・更新が正しく行えなくなるからです。
色で意味をつける
Excelでは「赤は重要」「黄色は注意」など色で意味をつけますが、データベースは色を保存しません。
意味をつけたいなら、状態を表す列を追加します。
SQL的な正しい考え方
「データはすべて“意味のある集合”として扱う」
SQLでは、テーブルは“データの集合”です。
その集合に対して、次のような操作を行います。
条件で絞り込む。
並べ替える。
集計する。
グループ分けする。
これらはすべて「集合に対する操作」です。
Excelのように「1行ずつ手作業で見る」という発想は捨ててください。
Day1 後半まとめ
Excelは人が触るための表。
データベースは機械が扱うための表。
SQLは「集合としてデータを扱う」ための言語。
1行ずつ処理するのではなく、条件で集合を取り出す。
Excelでやりがちな操作(空白行、複数情報、色付け)はデータベースではNG。

