📘 Step 1: SQLとデータベースの基礎知識
SQLって何?データベースって何?まずは基本を理解しよう!
- SQLとは何か、なぜ必要なのか
- データベースの基本概念(テーブル、行、列)
- リレーショナルデータベースの仕組み
- 実際の使用例と活用場面
🎯 1. SQLとは?
1-1. SQLの正式名称と読み方
SQLは「エスキューエル」と読みます。
正式名称はStructured Query Language(ストラクチャード・クエリ・ランゲージ)で、日本語では「構造化問い合わせ言語」と訳されます。
難しく聞こえますが、簡単に言うと「データベースとお話しするための言葉」です。
私たちが日本語で友達と会話するように、コンピュータと会話するための「言葉のルール」が言語です。SQLは、特にデータベースというコンピュータの部品と会話するための言葉です。
1-2. SQLは何のために使うの?
SQLを使うと、データベースに対して以下のような「お願い」ができます。
- データを見せて!(検索):「全部の商品を見せて」「価格が1000円以下だけ見せて」
- データを追加して!(登録):「新しい商品を追加して」「新しいお客さんを登録して」
- データを変更して!(更新):「この商品の価格を変更して」「住所を更新して」
- データを消して!(削除):「この商品を削除して」「古い注文データを消して」
1-3. なぜSQLが必要なの?
コンピュータは、私たちの日本語をそのまま理解できません。
「商品を見せて」と話しかけても、何も起きません。そこで、コンピュータが理解できる言葉=SQLで命令を出す必要があるのです。
図書館で本を探すとき、司書さんに「料理の本を全部見せてください」「著者が〇〇さんの本はどこですか?」とお願いしますよね。
SQLは、コンピュータ(データベース)に対してこのような「お願い」をするための言葉です。司書さんの代わりに、SQLがあなたの命令を理解して、データを探してくれます。
1-4. 身近な場所で動いているSQL
実は、私たちが普段使っているサービスの裏側では、常にSQLが動いています。
- ネットショッピング:「価格が安い順」「評価が高い順」で並べ替え
- SNSの検索:「#旅行」で投稿を検索
- 銀行のATM:残高を確認する
- 乗り換え案内:電車の時刻を検索
📊 2. データベースとは?
2-1. データベースの役割
データベースとは、データを整理して保存する「入れ物」のことです。
パソコンのフォルダにファイルを保存するのと似ていますが、データベースはもっと大量のデータを効率的に管理でき、素早く検索できるように作られています。
- データベース = 図書館全体
- テーブル = 本棚(小説の棚、雑誌の棚など種類ごと)
- データ(行) = 1冊1冊の本
2-2. テーブルとは?
データベースの中では、データはテーブル(表)の形で保存されます。Excelのシートをイメージしてください。
以下は「生徒テーブル」の例です。
| ID | 名前 | 年齢 | クラス |
|---|---|---|---|
| 1 | 田中太郎 | 15 | A組 |
| 2 | 鈴木花子 | 14 | B組 |
| 3 | 佐藤次郎 | 15 | A組 |
このテーブルでは、縦の項目(ID、名前、年齢、クラス)が「列(カラム)」、横の1人分のデータが「行(レコード)」です。
2-3. テーブルの構造を詳しく理解しよう
テーブルには3つの重要な要素があります。それぞれの意味を確認しましょう。
| 用語 | 英語 | 意味 | 例 |
|---|---|---|---|
| 列(カラム) | Column | 縦の項目名 | ID、名前、年齢 |
| 行(レコード) | Row / Record | 横の1件分のデータ | 田中太郎さんの情報1行 |
| セル | Cell | 1つ1つのマス | 「田中太郎」という値 |
2-4. 実際のテーブル例:商品テーブル
ネットショップを例に、もう少し実践的なテーブルを見てみましょう。
| 商品ID | 商品名 | 価格 | カテゴリ | 在庫 |
|---|---|---|---|---|
| 1 | ノートPC | 80000 | 電化製品 | 5 |
| 2 | マウス | 1500 | 電化製品 | 20 |
| 3 | デスク | 15000 | 家具 | 3 |
| 4 | チェア | 12000 | 家具 | 8 |
| 5 | モニター | 25000 | 電化製品 | 10 |
このテーブルでは、列(カラム)は5つ(商品ID、商品名、価格、カテゴリ、在庫)、行(レコード)は5つ(5つの商品が登録されている)です。電化製品は3つ、家具は2つあります。
このテーブルに対して、SQLを使えば「電化製品のカテゴリだけ見せて」「価格が10000円以下のものを見せて」「在庫が5個以下の商品を見せて」「価格が安い順に並べて見せて」といった指示を出すことができます。
🔗 3. リレーショナルデータベースとは?
3-1. 「リレーショナル」の意味
リレーショナル(Relational)とは、「関連している」「つながっている」という意味です。
リレーショナルデータベースとは、複数のテーブルを「関連づけて」管理するデータベースのことです。
学校には、別々の書類がありますよね。
- 生徒名簿:生徒ID、名前、クラス、住所など
- 成績表:生徒ID、科目、点数など
- 出席簿:生徒ID、日付、出欠など
これらは別々の書類ですが、「生徒ID」という共通の項目でつなげることができます。だから「田中太郎(ID:1)さんの、数学の点数と、先月の出席日数」をまとめて調べることができるのです。
3-2. なぜテーブルを分けるの?
「全部1つのテーブルにまとめた方が楽じゃない?」と思うかもしれません。でも、分けた方がいい理由があります。
まず、悪い例を見てみましょう。全部を1つにまとめたテーブルです。
| 注文ID | 顧客名 | 顧客住所 | 商品名 | 価格 | 数量 |
|---|---|---|---|---|---|
| 1 | 田中太郎 | 東京都… | ノートPC | 80000 | 1 |
| 2 | 田中太郎 | 東京都… ←同じ住所が2回 | マウス | 1500 | 2 |
| 3 | 田中太郎 | 東京都… ←同じ住所が3回! | キーボード | 3000 | 1 |
| 4 | 鈴木花子 | 大阪府… | デスク | 15000 | 1 |
このテーブルの問題点:田中太郎さんの情報が3回も重複しています。住所が変わったら3箇所を修正しないといけません。データ量も無駄に大きくなります。
次に、良い例を見てみましょう。テーブルを分けて関連づけています。
| 顧客ID | 顧客名 | 住所 |
|---|---|---|
| 1 | 田中太郎 | 東京都… |
| 2 | 鈴木花子 | 大阪府… |
| 注文ID | 顧客ID | 商品名 | 価格 | 数量 |
|---|---|---|---|---|
| 1 | 1 | ノートPC | 80000 | 1 |
| 2 | 1 | マウス | 1500 | 2 |
| 3 | 1 | キーボード | 3000 | 1 |
| 4 | 2 | デスク | 15000 | 1 |
注文テーブルの「顧客ID」を見れば、顧客テーブルから顧客の詳細情報を取得できます。住所は顧客テーブルに1回だけ書けばOKで、住所が変わっても1箇所を修正するだけで済みます。
3-3. テーブルをつなげる「キー」
テーブル同士をつなげるために使う列を「キー」と呼びます。
| キーの名前 | 役割 | 例 |
|---|---|---|
| 主キー(Primary Key) | そのテーブルで各行を一意に識別するID | 顧客テーブルの「顧客ID」、商品テーブルの「商品ID」 |
| 外部キー(Foreign Key) | 他のテーブルの主キーを参照する列 | 注文テーブルの「顧客ID」(顧客テーブルを参照) |
💼 4. SQLとデータベースの活用場面
4-1. 日常生活での活用例
私たちが日常的に使っているサービスの多くは、裏側でデータベースとSQLが動いています。
- 商品の検索・絞り込み
- 在庫数の管理
- 注文履歴の保存
- おすすめ商品の表示
- 口座情報の管理
- 取引履歴の記録
- 残高の計算
- 不正取引の検出
- 投稿の保存・表示
- フォロー関係の管理
- いいね・コメントの記録
- おすすめユーザーの抽出
4-2. ビジネスでの活用例
- 「今月の売上トップ10の商品は?」
- 「どの地域の売上が一番多い?」
- 「昨年と比べて売上はどうなっている?」
- 「在庫が残り10個以下の商品は?」
- 「今月中に在庫切れになりそうな商品は?」
- 「発注が必要な商品リストを出して」
- 「月に10回以上購入している顧客は?」
- 「最近3ヶ月購入していない顧客は?」
- 「この商品を買った人がよく買う商品は?」
- 「月次の売上レポートを作成」
- 「カテゴリ別の販売数を集計」
- 「新規顧客と既存顧客の比較」
4-3. SQLができると広がる可能性
- 仕事の効率アップ:大量のデータを一瞬で分析できる
- キャリアの選択肢が増える:データアナリスト、エンジニアなどの職種に挑戦できる
- プログラミングへの足がかり:他の言語を学ぶときにも役立つ
- データに基づいた意思決定:感覚ではなくデータで判断できる
🎓 5. SQLとデータベースの種類
5-1. 主なデータベース管理システム
SQLを使えるデータベース管理システム(DBMS:Database Management System)はいくつかあります。
| 名前 | 特徴 |
|---|---|
| SQLite (エスキューライト) |
軽量で初心者向け。スマホアプリでもよく使われる。サーバー不要で簡単に始められる。このコースで使用! |
| MySQL (マイエスキューエル) |
無料で使える人気のDB。WordPressなどのWebサイトで使用。世界で最も使われているDBの1つ。 |
| PostgreSQL (ポストグレスキューエル) |
高機能で信頼性が高い。大規模システムで使われる。地理情報など高度な機能あり。 |
| Oracle Database (オラクル) |
企業向けの高性能DB。大企業や官公庁で使われる。有料(高価)。 |
| SQL Server (エスキューエルサーバー) |
マイクロソフト製のDB。Windows環境で人気。Excelとの連携が得意。 |
5-2. このコースでSQLiteを使う理由
- セットアップが簡単:サーバーの設定が不要。インストールしてすぐに使い始められる。
- 完全無料:商用利用も含めて完全に無料。
- パソコンに負担がかからない:軽量なので、古いパソコンでも問題なく動く。
- 他のデータベースにも応用できる:SQLiteで学んだ内容の80%以上は、MySQL、PostgreSQLなど他のデータベースでもそのまま使える。
🔑 6. SQLの基本コマンド(プレビュー)
次のステップから実際にSQLを書いていきます。ここでは「こんな感じなんだ」という雰囲気だけ掴んでください。
以下のコードは「こんな感じ」というイメージを持ってもらうためのものです。詳しい文法は Step 4 以降で丁寧に説明します。今は眺めるだけで大丈夫です。
6-1. データを見る(SELECT)
一番よく使うコマンドです。テーブルからデータを取り出します。
※横にスクロールできます
6-2. データを追加する(INSERT)
新しいデータをテーブルに追加します。
※横にスクロールできます
6-3. データを変更する(UPDATE)
すでにあるデータを修正します。
※横にスクロールできます
6-4. データを削除する(DELETE)
不要なデータを削除します。
※横にスクロールできます
| コマンド | 意味 | 覚え方 |
|---|---|---|
| SELECT | データを見る | 「選んで(SELECT)見せて」 |
| INSERT | データを追加 | 「挿入(INSERT)して」 |
| UPDATE | データを変更 | 「更新(UPDATE)して」 |
| DELETE | データを削除 | 「削除(DELETE)して」 |
📝 Step 1 のまとめ
- SQLは、データベースに命令を出すための言語
- データベースは、データを整理して保存する場所(図書館のようなもの)
- テーブルは、データを表の形で保存する(Excelのシートのようなもの)
- 列(カラム)は縦の項目、行(レコード)は横の1件分のデータ
- リレーショナルデータベースは、複数のテーブルを関連づけて管理する
- SQLは、ネットショップ、銀行、SNSなど、身の回りのあらゆる場所で使われている
- このコースではSQLiteを使って学習する
次のStep 2では、実際にSQLを使える環境を作ります。DB Browser for SQLiteというツールをインストールして、すぐにSQLを書き始められるようにしましょう!
❓ よくある質問
Q1: SQLとExcelはどう違うの?
規模と目的が違います。
| 項目 | Excel | SQL + データベース |
|---|---|---|
| データ量 | 数万行程度まで | 数億行でも可能 |
| 同時アクセス | 1人〜数人 | 数千人同時でも可能 |
| 検索速度 | データが増えると遅い | 大量でも高速 |
小規模なデータ管理ならExcelで十分ですが、大量のデータを扱う場合はSQL + データベースが必要になります。
Q2: プログラミング経験がなくても大丈夫?
はい、大丈夫です!
SQLは他のプログラミング言語と比べて、とてもシンプルです。英語に近い文法なので読みやすく、覚えるコマンドも少ない(基本は4つだけ)です。すぐに結果が見えるので達成感もあります。
このコースは初心者向けに作られているので、安心して進めてください。
Q3: どのくらいの期間で習得できますか?
基礎は2〜3週間で習得できます。
1日1〜2時間の学習で、全15ステップを2〜3週間で修了できます。基本的な検索(SELECT)は最初の1週間で使えるようになります。実務で使えるレベルになるには、その後も実践が必要ですが、基礎はしっかり身につきます。
Q4: SQLite以外のデータベースも学ぶ必要がありますか?
まずはSQLiteで基礎を固めてからで大丈夫です。
SQLの基本文法は、どのデータベースでもほぼ同じです。SQLiteで学んだ内容の80%以上は、MySQL、PostgreSQLなど他のデータベースでもそのまま使えます。
まずはこのコースでSQLiteをマスターしてから、必要に応じて他のデータベースに挑戦しましょう。
Q5: SQLを学ぶとどんな仕事ができますか?
データに関わる様々な仕事で活躍できます。
- データアナリスト:売上データや顧客データを分析
- データサイエンティスト:機械学習の前処理でSQLを使用
- Webエンジニア:アプリケーションのデータ管理
- マーケター:顧客分析、広告効果測定
- 営業・事務:売上レポート作成、データ集計
今やSQLは、IT職種だけでなく、多くのビジネスパーソンに求められるスキルになっています。
Q6: SQLの「エスキューエル」と「シークェル」どちらが正しい読み方?
どちらも正しいです。
- エスキューエル(S-Q-L):アルファベットをそのまま読む。日本ではこちらが主流。
- シークェル(Sequel):SQLの前身「SEQUEL」の名残。英語圏では使われることも。
このコースでは「エスキューエル」と読んでいますが、どちらで呼んでも問題ありません。
学習メモ
SQL基礎 - Step 1