Step 4:SELECT文の基礎

📝 Step 4: SELECT文の基礎

データを取り出す基本のき!

📋 このステップで学ぶこと
  • SELECT文とは何か、なぜ重要か
  • 全てのデータを取得する方法(*)
  • 特定の列だけを取得する方法
  • 列に別名をつける方法(AS)
  • 計算結果を表示する方法
  • 文字列を結合する方法

🎯 1. SELECT文とは?

1-1. SELECT文の役割

SELECT文(セレクトぶん)は、データベースからデータを取り出すための命令です。

SQLには様々な命令がありますが、SELECT文は最もよく使われる命令です。データベースを使う仕事では、毎日何度もSELECT文を使うことになります。

📚 図書館で例えると…

図書館で司書さんに「料理の本を見せてください」とお願いするイメージです。

  • 「全部の本を見せて」→ 全データ取得
  • 「タイトルだけ見せて」→ 特定の列を取得
  • 「料理の本だけ見せて」→ 条件で絞り込み(次のStepで学習)

1-2. SELECT文の基本構文

SELECT文の基本的な書き方は以下の通りです。

📝 SELECT文の基本構文
SELECT 列名 FROM テーブル名;
📌 英語の意味を理解しよう
単語 意味 役割
SELECT 選ぶ、選択する どの列を取り出すか指定
FROM 〜から どのテーブルから取り出すか指定

つまり「〇〇テーブルから、△△列を選んで表示して」という意味になります。

1-3. SELECT文を読み解く

例えば、以下のSQLを日本語に訳すと…

※横にスクロールできます

SELECT 商品名 FROM 商品;
🔍 このSQLの意味

商品テーブルから(FROM)、商品名列を選んで(SELECT)表示して」

📊 2. 練習用テーブルの準備

2-1. 練習用データを作成する

これからSELECT文を練習するために、「商品」テーブルを作成します。以下のSQLを順番に実行してください。

ステップ1:テーブルを作成する

※横にスクロールできます

CREATE TABLE 商品 ( 商品ID INTEGER PRIMARY KEY, 商品名 TEXT NOT NULL, 価格 INTEGER NOT NULL, カテゴリ TEXT, 在庫数 INTEGER );

ステップ2:サンプルデータを追加する

※横にスクロールできます

INSERT INTO 商品 (商品ID, 商品名, 価格, カテゴリ, 在庫数) VALUES (1, ‘ノートPC’, 80000, ‘電化製品’, 5), (2, ‘マウス’, 1500, ‘電化製品’, 20), (3, ‘デスク’, 15000, ‘家具’, 3), (4, ‘チェア’, 12000, ‘家具’, 8), (5, ‘モニター’, 25000, ‘電化製品’, 10), (6, ‘キーボード’, 3000, ‘電化製品’, 15), (7, ‘本棚’, 8000, ‘家具’, 5), (8, ‘ランプ’, 4000, ‘家具’, 12);

2-2. 作成したテーブルの内容

上記のSQLを実行すると、以下のようなテーブルができあがります。

📋 商品テーブル(8件のデータ)
商品ID 商品名 価格 カテゴリ 在庫数
1 ノートPC 80000 電化製品 5
2 マウス 1500 電化製品 20
3 デスク 15000 家具 3
4 チェア 12000 家具 8
5 モニター 25000 電化製品 10
6 キーボード 3000 電化製品 15
7 本棚 8000 家具 5
8 ランプ 4000 家具 12
✅ 準備完了!

このテーブルを使って、SELECT文の練習をしていきましょう!

⭐ 3. 全てのデータを取得する(*)

3-1. アスタリスク(*)とは?

*(アスタリスク)は、「全ての列」を意味する特別な記号です。

「全部見せて!」とお願いしたいときに使います。

3-2. 全てのデータを取得してみよう

以下のSQLを実行してみてください。

※横にスクロールできます

SELECT * FROM 商品;
📌 このSQLの意味
部分 意味
SELECT 選んで表示して
* 全ての列を
FROM 商品 商品テーブルから

実行すると、商品テーブルの全てのデータが表示されます。

📋 実行結果
商品ID 商品名 価格 カテゴリ 在庫数
1 ノートPC 80000 電化製品 5
2 マウス 1500 電化製品 20
3 デスク 15000 家具 3
4 チェア 12000 家具 8
5 モニター 25000 電化製品 10
6 キーボード 3000 電化製品 15
7 本棚 8000 家具 5
8 ランプ 4000 家具 12

3-3. *を使う場面

💡 *が便利な場面
  • テーブルの全体像を確認したいとき
  • どんな列があるか分からないとき
  • とりあえず全部のデータを見たいとき
  • 学習中やテスト時
⚠️ *の注意点

*は便利ですが、大量のデータがあるテーブルで使うと、表示に時間がかかることがあります。

実務では、必要な列だけを指定することが推奨されます。

📋 4. 特定の列だけを取得する

4-1. 1つの列を取得する

全部ではなく、必要な列だけを取得することができます。

商品名だけを取得してみましょう。

※横にスクロールできます

SELECT 商品名 FROM 商品;
📌 このSQLの意味

「商品テーブルから、商品名だけを選んで表示して」

📋 実行結果
商品名
ノートPC
マウス
デスク
チェア
モニター
キーボード
本棚
ランプ

4-2. 複数の列を取得する

複数の列を取得したいときは、カンマ(,)で区切ります。

商品名と価格の2つを取得してみましょう。

※横にスクロールできます

SELECT 商品名, 価格 FROM 商品;
📌 このSQLの意味

「商品テーブルから、商品名と価格を選んで表示して」

カンマ(,)で列を区切ることで、複数の列を指定できます。

📋 実行結果
商品名 価格
ノートPC 80000
マウス 1500
デスク 15000
チェア 12000
モニター 25000
キーボード 3000
本棚 8000
ランプ 4000

4-3. 3つ以上の列を取得する

同じようにカンマで区切れば、3つ以上の列も取得できます。

※横にスクロールできます

SELECT 商品名, カテゴリ, 在庫数 FROM 商品;
📋 実行結果
商品名 カテゴリ 在庫数
ノートPC 電化製品 5
マウス 電化製品 20
デスク 家具 3
チェア 家具 8
モニター 電化製品 10
キーボード 電化製品 15
本棚 家具 5
ランプ 家具 12

4-4. 列の順番は自由に変えられる

SELECT文で指定した順番通りに表示されます。テーブルの元の順番とは関係ありません。

※横にスクロールできます

SELECT 価格, 商品名, カテゴリ FROM 商品;
📌 ポイント

テーブルでは「商品ID, 商品名, 価格…」の順番ですが、SELECTで「価格, 商品名, カテゴリ」と書けば、その順番で表示されます。

📋 実行結果
価格 商品名 カテゴリ
80000 ノートPC 電化製品
1500 マウス 電化製品
15000 デスク 家具
12000 チェア 家具

(以下省略)

🔢 5. 計算結果を表示する

5-1. SELECT文で計算ができる

SELECT文の中で計算をすることができます。例えば、価格に消費税を加えた金額を表示したい場合などに便利です。

5-2. 基本的な計算

価格を1.1倍(消費税10%込み)にして表示してみましょう。

※横にスクロールできます

SELECT 商品名, 価格, 価格 * 1.1 FROM 商品;
📌 このSQLの意味
部分 意味
商品名 商品名をそのまま表示
価格 価格をそのまま表示
価格 * 1.1 価格を1.1倍した値を計算して表示
📋 実行結果
商品名 価格 価格 * 1.1
ノートPC 80000 88000.0
マウス 1500 1650.0
デスク 15000 16500.0
チェア 12000 13200.0
モニター 25000 27500.0

(以下省略)

列名が「価格 * 1.1」となっていて分かりにくいですね。これを改善する方法を次で学びます。

5-3. 列に別名をつける(AS)

AS(エイリアス)を使うと、列に別の名前をつけることができます。

※横にスクロールできます

SELECT 商品名, 価格, 価格 * 1.1 AS 税込価格 FROM 商品;
📌 ASの使い方
書き方 意味
価格 * 1.1 AS 税込価格 「価格 * 1.1」の計算結果を「税込価格」という名前で表示

ASは「〜として」という意味で、「この計算結果を〇〇という名前で表示して」というイメージです。

📋 実行結果
商品名 価格 税込価格
ノートPC 80000 88000.0
マウス 1500 1650.0
デスク 15000 16500.0
チェア 12000 13200.0
モニター 25000 27500.0

列名が「税込価格」になり、分かりやすくなりました!

5-4. 複数の列を使った計算

「価格 × 在庫数」で在庫金額を計算することもできます。

※横にスクロールできます

SELECT 商品名, 価格, 在庫数, 価格 * 在庫数 AS 在庫金額 FROM 商品;
📌 このSQLの意味

価格 * 在庫数 AS 在庫金額

価格と在庫数を掛け算して、その結果を「在庫金額」という名前で表示します。

これにより、各商品の在庫がいくら分あるかが分かります。

📋 実行結果
商品名 価格 在庫数 在庫金額
ノートPC 80000 5 400000
マウス 1500 20 30000
デスク 15000 3 45000
チェア 12000 8 96000
モニター 25000 10 250000

(以下省略)

💡 使える計算記号
記号 意味
+ 足し算 価格 + 500
引き算 価格 – 1000
* 掛け算 価格 * 1.1
/ 割り算 価格 / 2
% 余り 在庫数 % 3

🎨 6. 文字列を結合する

6-1. ||(パイプ2つ)で文字列を結合

SQLiteでは||(パイプ2つ)を使って、文字列を結合できます。

商品名とカテゴリを結合して、「商品名(カテゴリ)」の形式で表示してみましょう。

※横にスクロールできます

SELECT 商品名 || ‘(’ || カテゴリ || ‘)’ AS 商品情報 FROM 商品;
📌 このSQLを分解すると
部分 内容
商品名 商品名の値(例:ノートPC)
|| 結合する
'(' 文字「(」
|| 結合する
カテゴリ カテゴリの値(例:電化製品)
|| 結合する
')' 文字「)」

結果:「ノートPC(電化製品)」のように表示されます。

📋 実行結果
商品情報
ノートPC(電化製品)
マウス(電化製品)
デスク(家具)
チェア(家具)
モニター(電化製品)
キーボード(電化製品)
本棚(家具)
ランプ(家具)

6-2. 数値と文字列を結合する

数値に「円」をつけて表示することもできます。

※横にスクロールできます

SELECT 商品名, 価格 || ‘円’ AS 価格表示 FROM 商品;
📋 実行結果
商品名 価格表示
ノートPC 80000円
マウス 1500円
デスク 15000円
チェア 12000円
モニター 25000円

(以下省略)

💬 7. コメントの書き方

7-1. コメントとは?

コメントは、SQLの説明やメモを書くための機能です。コメントは実行されません

「このSQLは何をしているのか」を書いておくと、後で見返したときに便利です。

7-2. 1行コメント

(ハイフン2つ)を使うと、その後ろの文字がコメントになります。

※横にスクロールできます

— これはコメントです。実行されません。 SELECT 商品名 FROM 商品;

7-3. 複数行コメント

/* */で囲むと、複数行のコメントが書けます。

※横にスクロールできます

/* このSQLは商品テーブルから 全てのデータを取得します。 学習用のサンプルです。 */ SELECT * FROM 商品;
💡 コメントを書く習慣をつけよう

複雑なSQLには、何をしているか説明を書いておくと良いです。

  • 後で自分が見返したときに分かりやすい
  • 他の人がSQLを見たときに理解しやすい
  • なぜこの書き方をしたのか理由を残せる

📝 Step 4 のまとめ

✅ このステップで学んだこと
学んだこと SQL例
全データを取得 SELECT * FROM テーブル名
1つの列を取得 SELECT 列名 FROM テーブル名
複数の列を取得 SELECT 列1, 列2 FROM テーブル名
計算結果を表示 SELECT 価格 * 1.1 FROM テーブル名
別名をつける SELECT 列名 AS 別名 FROM テーブル名
文字列を結合 SELECT 列1 || 列2 FROM テーブル名
1行コメント -- コメント
複数行コメント /* コメント */
🎯 次のステップへ

SELECT文の基礎をマスターしました!

次のStep 5では、WHERE句を使って「条件に合うデータだけ」を取り出す方法を学びます。例えば「価格が10000円以上の商品だけ」「電化製品だけ」といった絞り込みができるようになります。

📝 練習問題

実際に手を動かして、SELECT文をマスターしましょう!

問題 1 基本

全データを表示

商品テーブルの全てのデータを表示してください。

※横にスクロールできます

SELECT * FROM 商品;

解説:*(アスタリスク)を使うと、全ての列を取得できます。

問題 2 基本

商品名だけを表示

商品テーブルから商品名だけを取得してください。

※横にスクロールできます

SELECT 商品名 FROM 商品;

解説:*の代わりに列名を書くと、その列だけを取得できます。

問題 3 基本

商品名と価格を表示

商品名と価格の2つの列を表示してください。

※横にスクロールできます

SELECT 商品名, 価格 FROM 商品;

解説:複数の列を取得するときは、カンマ(,)で区切ります。

問題 4 応用

税込価格を計算

商品名と、価格を1.1倍した税込価格を表示してください。税込価格には「税込価格」という別名をつけてください。

※横にスクロールできます

SELECT 商品名, 価格 * 1.1 AS 税込価格 FROM 商品;

解説:計算式の後に「AS 別名」をつけると、分かりやすい列名で表示できます。

問題 5 応用

在庫金額を計算

商品名、価格、在庫数、そして「価格×在庫数」を「在庫金額」という名前で表示してください。

※横にスクロールできます

SELECT 商品名, 価格, 在庫数, 価格 * 在庫数 AS 在庫金額 FROM 商品;

解説:複数の列を掛け算することもできます。

問題 6 応用

文字列を結合

商品名とカテゴリを結合して「商品名【カテゴリ】」の形式で表示してください。列名は「商品情報」としてください。

※横にスクロールできます

SELECT 商品名 || ‘【’ || カテゴリ || ‘】’ AS 商品情報 FROM 商品;

解説:||で文字列を結合できます。固定の文字は”(シングルクォート)で囲みます。

問題 7 チャレンジ

複数の計算を同時に

商品名、価格、税込価格(価格×1.1)、値引き価格(価格×0.8)を表示してください。それぞれに適切な列名をつけてください。

※横にスクロールできます

SELECT 商品名, 価格, 価格 * 1.1 AS 税込価格, 価格 * 0.8 AS 値引き価格 FROM 商品;

解説:1つのSELECT文で複数の計算を同時に行えます。改行して書くと読みやすくなります。

問題 8 チャレンジ

見やすい形式で表示

「商品名: 〇〇 / 価格: △△円 / 在庫: □□個」という形式で1つの列として表示してください。列名は「商品詳細」としてください。

※横にスクロールできます

SELECT ‘商品名: ‘ || 商品名 || ‘ / 価格: ‘ || 価格 || ‘円 / 在庫: ‘ || 在庫数 || ‘個’ AS 商品詳細 FROM 商品;

解説:複数の列と文字列を||で結合することで、自由な形式で表示できます。

❓ よくある質問

Q1: *と全ての列名を書くのは、どちらが良いですか?

学習中は*が便利です。ただし、実務では必要な列だけを指定するのが一般的です。

不要なデータを取得しない方が、処理が速くなり、メモリも節約できます。

Q2: SELECTやFROMは大文字で書かないとダメ?

小文字でも動きます。select や from でも同じ結果になります。

ただし、大文字の方がSQLの命令だと分かりやすいので、大文字で書くのが一般的です。このコースでも大文字で書いています。

Q3: セミコロン(;)は必要ですか?

1つのSQL文だけなら省略できることもありますが、つける習慣をつけましょう。

複数のSQL文を続けて書くときは、セミコロンで区切る必要があります。常につける習慣をつけておくと安心です。

Q4: 列名の順番を間違えたらどうなりますか?

エラーにはなりません。指定した順番で表示されるだけです。

元のテーブルのデータには影響しません。SELECTは「見る」だけの命令なので、安心して色々試してください。

Q5: ASを省略できますか?

はい、省略できます。SELECT 価格 * 1.1 税込価格のようにASなしでも動きます。

ただし、ASを書いた方が「別名をつけている」ことが明確になり、読みやすいです。

Q6: 計算結果はテーブルに保存されますか?

保存されません。SELECTは「表示する」だけの命令です。

計算結果を表示しても、元のテーブルのデータは変わりません。毎回計算して表示しています。

📝

学習メモ

SQL基礎 - Step 4

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE