《SQL》
Create:2002/02/11
[BACK] [NEXT] [メニュー]
   例)
    “学生”表、“学部”表に対して、次の SQL 文を実行した結果得られるデータはどれか。

      SELECT 氏名 FROM 学生, 学部
        WHERE 所属=学部名 AND 所在地='新宿'

     学生                学部
    ┌────┬────┬────┐  ┌────┬────┐
    │ 氏名 │ 所属 │ 住所 │  │学部名 │所在地 │
    ┝━━━━┿━━━━┿━━━━┥  ┝━━━━┿━━━━┥
    │合田知子│ 理  │ 新宿 │  │ 理  │ 新宿 │
    ├────┼────┼────┤  ├────┼────┤
    │青木俊介│ 工  │ 渋谷 │  │ 工  │ 新宿 │
    ├────┼────┼────┤  ├────┼────┤
    │川内聡 │ 人文 │ 渋谷 │  │ 人文 │ 渋谷 │
    ├────┼────┼────┤  ├────┼────┤
    │坂口祐子│ 経済 │ 新宿 │  │ 経済 │ 渋谷 │
    └────┴────┴────┘  └────┴────┘


   解説)
     SELECT 氏名 FROM 学生, 学部
         WHERE 所属=学部名 AND 所在地='新宿'

     この SQL の文章は、次のような構成になっている。

         SELECT 〜 FROM 〜 WHERE 〜

     このような構成の SQL 文を SELECT 文(問合せ)と呼ばれるもので、
     「表のデータの検索を行うとき」に用いる。

     この SELECT 文の構成は、

       SELECT (検索する列の名前)

         FROM (検索対象表の名前)

           WHERE (検索条件)

     となる。
     この構文は、よく出るので覚えておく。

     まず、1行目の【SELECT 氏名 FROM 学生, 学部】は、
     【学生表と学部表から氏名の列を取り出せ】という意味になる。

     2行目は WHERE 句なので、この部分は検索条件を指定している。
     【WHERE 所属=学部名 AND 所在地='新宿'】という検索条件。

     ここまでをまとめると

     【WHERE 所属=学部名 AND 所在地='新宿'】という条件を満たす
     【学生表と学部表から氏名の列を取り出せ】

     という意味になる。

     もうすこし検索条件の部分を細かく見ていくと

     【WHERE 所属=学部名 AND 所在地='新宿'】

     まず、前半部分は
     【所属と学部名が同じもので学生表と学部表をくっつけろ】という意味になる。
     後半部分は【所在地が新宿のもの】となる。

     したがって、この SQL 文の意味は
     「所在地が新宿のものを選んで、所属と学部名が同じもので学生表と学部表を
     くっつけて、氏名の列を取りせ」

     という意味になる。

     【所在地が新宿のもの】は、学部表から理学部と工学部である。

     よって、実行結果は下のようになる。

      ┌────┐
      │ 氏名 │
      ┝━━━━┥
      │合田知子│
      ├────┤
      │青木俊介│
      └────┘

   解答)
     合田知子 青木俊介

[BACK] [NEXT] [メニュー]

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル