📝 Step 4: SELECT文の基礎
データを取り出す基本のき!
- SELECT文とは何か、なぜ重要か
- 全てのデータを取得する方法(*)
- 特定の列だけを取得する方法
- 列に別名をつける方法(AS)
- 計算結果を表示する方法
- 文字列を結合する方法
🎯 1. SELECT文とは?
1-1. SELECT文の役割
SELECT文(セレクトぶん)は、データベースからデータを取り出すための命令です。
SQLには様々な命令がありますが、SELECT文は最もよく使われる命令です。データベースを使う仕事では、毎日何度もSELECT文を使うことになります。
図書館で司書さんに「料理の本を見せてください」とお願いするイメージです。
- 「全部の本を見せて」→ 全データ取得
- 「タイトルだけ見せて」→ 特定の列を取得
- 「料理の本だけ見せて」→ 条件で絞り込み(次のStepで学習)
1-2. SELECT文の基本構文
SELECT文の基本的な書き方は以下の通りです。
SELECT 列名 FROM テーブル名;
| 単語 | 意味 | 役割 |
|---|---|---|
| SELECT | 選ぶ、選択する | どの列を取り出すか指定 |
| FROM | 〜から | どのテーブルから取り出すか指定 |
つまり「〇〇テーブルから、△△列を選んで表示して」という意味になります。
1-3. SELECT文を読み解く
例えば、以下のSQLを日本語に訳すと…
※横にスクロールできます
「商品テーブルから(FROM)、商品名列を選んで(SELECT)表示して」
📊 2. 練習用テーブルの準備
2-1. 練習用データを作成する
これからSELECT文を練習するために、「商品」テーブルを作成します。以下のSQLを順番に実行してください。
ステップ1:テーブルを作成する
※横にスクロールできます
ステップ2:サンプルデータを追加する
※横にスクロールできます
2-2. 作成したテーブルの内容
上記のSQLを実行すると、以下のようなテーブルができあがります。
| 商品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 商品 | 商品テーブルから |
実行すると、商品テーブルの全てのデータが表示されます。
| 商品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つの列を取得する
全部ではなく、必要な列だけを取得することができます。
商品名だけを取得してみましょう。
※横にスクロールできます
「商品テーブルから、商品名だけを選んで表示して」
| 商品名 |
|---|
| ノートPC |
| マウス |
| デスク |
| チェア |
| モニター |
| キーボード |
| 本棚 |
| ランプ |
4-2. 複数の列を取得する
複数の列を取得したいときは、カンマ(,)で区切ります。
商品名と価格の2つを取得してみましょう。
※横にスクロールできます
「商品テーブルから、商品名と価格を選んで表示して」
カンマ(,)で列を区切ることで、複数の列を指定できます。
| 商品名 | 価格 |
|---|---|
| ノートPC | 80000 |
| マウス | 1500 |
| デスク | 15000 |
| チェア | 12000 |
| モニター | 25000 |
| キーボード | 3000 |
| 本棚 | 8000 |
| ランプ | 4000 |
4-3. 3つ以上の列を取得する
同じようにカンマで区切れば、3つ以上の列も取得できます。
※横にスクロールできます
| 商品名 | カテゴリ | 在庫数 |
|---|---|---|
| ノートPC | 電化製品 | 5 |
| マウス | 電化製品 | 20 |
| デスク | 家具 | 3 |
| チェア | 家具 | 8 |
| モニター | 電化製品 | 10 |
| キーボード | 電化製品 | 15 |
| 本棚 | 家具 | 5 |
| ランプ | 家具 | 12 |
4-4. 列の順番は自由に変えられる
SELECT文で指定した順番通りに表示されます。テーブルの元の順番とは関係ありません。
※横にスクロールできます
テーブルでは「商品ID, 商品名, 価格…」の順番ですが、SELECTで「価格, 商品名, カテゴリ」と書けば、その順番で表示されます。
| 価格 | 商品名 | カテゴリ |
|---|---|---|
| 80000 | ノートPC | 電化製品 |
| 1500 | マウス | 電化製品 |
| 15000 | デスク | 家具 |
| 12000 | チェア | 家具 |
(以下省略)
🔢 5. 計算結果を表示する
5-1. SELECT文で計算ができる
SELECT文の中で計算をすることができます。例えば、価格に消費税を加えた金額を表示したい場合などに便利です。
5-2. 基本的な計算
価格を1.1倍(消費税10%込み)にして表示してみましょう。
※横にスクロールできます
| 部分 | 意味 |
|---|---|
| 商品名 | 商品名をそのまま表示 |
| 価格 | 価格をそのまま表示 |
| 価格 * 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(エイリアス)を使うと、列に別の名前をつけることができます。
※横にスクロールできます
| 書き方 | 意味 |
|---|---|
価格 * 1.1 AS 税込価格 |
「価格 * 1.1」の計算結果を「税込価格」という名前で表示 |
ASは「〜として」という意味で、「この計算結果を〇〇という名前で表示して」というイメージです。
| 商品名 | 価格 | 税込価格 |
|---|---|---|
| ノートPC | 80000 | 88000.0 |
| マウス | 1500 | 1650.0 |
| デスク | 15000 | 16500.0 |
| チェア | 12000 | 13200.0 |
| モニター | 25000 | 27500.0 |
列名が「税込価格」になり、分かりやすくなりました!
5-4. 複数の列を使った計算
「価格 × 在庫数」で在庫金額を計算することもできます。
※横にスクロールできます
価格 * 在庫数 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つ)を使って、文字列を結合できます。
商品名とカテゴリを結合して、「商品名(カテゴリ)」の形式で表示してみましょう。
※横にスクロールできます
| 部分 | 内容 |
|---|---|
商品名 |
商品名の値(例:ノートPC) |
|| |
結合する |
'(' |
文字「(」 |
|| |
結合する |
カテゴリ |
カテゴリの値(例:電化製品) |
|| |
結合する |
')' |
文字「)」 |
結果:「ノートPC(電化製品)」のように表示されます。
| 商品情報 |
|---|
| ノートPC(電化製品) |
| マウス(電化製品) |
| デスク(家具) |
| チェア(家具) |
| モニター(電化製品) |
| キーボード(電化製品) |
| 本棚(家具) |
| ランプ(家具) |
6-2. 数値と文字列を結合する
数値に「円」をつけて表示することもできます。
※横にスクロールできます
| 商品名 | 価格表示 |
|---|---|
| ノートPC | 80000円 |
| マウス | 1500円 |
| デスク | 15000円 |
| チェア | 12000円 |
| モニター | 25000円 |
(以下省略)
💬 7. コメントの書き方
7-1. コメントとは?
コメントは、SQLの説明やメモを書くための機能です。コメントは実行されません。
「このSQLは何をしているのか」を書いておくと、後で見返したときに便利です。
7-2. 1行コメント
—(ハイフン2つ)を使うと、その後ろの文字がコメントになります。
※横にスクロールできます
7-3. 複数行コメント
/* */で囲むと、複数行のコメントが書けます。
※横にスクロールできます
複雑な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文をマスターしましょう!
全データを表示
商品テーブルの全てのデータを表示してください。
※横にスクロールできます
解説:*(アスタリスク)を使うと、全ての列を取得できます。
商品名だけを表示
商品テーブルから商品名だけを取得してください。
※横にスクロールできます
解説:*の代わりに列名を書くと、その列だけを取得できます。
商品名と価格を表示
商品名と価格の2つの列を表示してください。
※横にスクロールできます
解説:複数の列を取得するときは、カンマ(,)で区切ります。
税込価格を計算
商品名と、価格を1.1倍した税込価格を表示してください。税込価格には「税込価格」という別名をつけてください。
※横にスクロールできます
解説:計算式の後に「AS 別名」をつけると、分かりやすい列名で表示できます。
在庫金額を計算
商品名、価格、在庫数、そして「価格×在庫数」を「在庫金額」という名前で表示してください。
※横にスクロールできます
解説:複数の列を掛け算することもできます。
文字列を結合
商品名とカテゴリを結合して「商品名【カテゴリ】」の形式で表示してください。列名は「商品情報」としてください。
※横にスクロールできます
解説:||で文字列を結合できます。固定の文字は”(シングルクォート)で囲みます。
複数の計算を同時に
商品名、価格、税込価格(価格×1.1)、値引き価格(価格×0.8)を表示してください。それぞれに適切な列名をつけてください。
※横にスクロールできます
解説:1つのSELECT文で複数の計算を同時に行えます。改行して書くと読みやすくなります。
見やすい形式で表示
「商品名: 〇〇 / 価格: △△円 / 在庫: □□個」という形式で1つの列として表示してください。列名は「商品詳細」としてください。
※横にスクロールできます
解説:複数の列と文字列を||で結合することで、自由な形式で表示できます。
❓ よくある質問
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