1.データ選択の基礎

以下のテーブルをもとに、演習を進める。

[ sale ]

sale_id sale_date product_name product_count product_price product_total customer is_delivery note
101 2007/4/1 りんご 20 140 2800 A商店 false (NULL)
102 2007/4/2 いちご 15 400 6000 B商店 true (NULL)
103 2007/5/4 いちご 2 400 800 A商店 false (NULL)
104 2007/5/12 いちじく 32 600 19200 A商店パリ支店 true 空輸
105 2007/5/20 マンゴー 18 260 4680 C商店 false (NULL)
106 2007/6/7 りんご 3 140 420 A商店 false (NULL)
107 2007/7/1 メロン 12 3500 42000 W商店 true のしをつける
108 2007/7/7 七夕セット 3 1780 5340 C商店 false (NULL)
109 2007/7/10 マンゴー 10 260 2600 B商店 false (NULL)
110 2007/8/1 常夏セット 6 2300 13800 海の家 false (NULL)

1-1

販売データを確認 − 全データの表示

販売テーブルの全データの内容を確認する。

キーワード:select、from、*

【サンプルソースコード】

1-1.sql

/* 1-1.販売データを確認 − 全データの表示 */ /*  selectに、列名を全部並べてもいい(カンマ区切りで) */ select * from sale;

1-2

必要な項目だけを確認 − 特定列の表示

販売番号、商品名、合計金額、販売先のみを表示する。

sale_id product_name product_total customer
101 りんご 2800 A商店
102 いちご 6000 B商店
103 いちご 800 A商店
104 いちじく 19200 A商店パリ支店
105 マンゴー 4680 C商店
106 りんご 420 A商店
107 メロン 42000 W商店
108 七夕セット 5340 C商店
109 マンゴー 2600 B商店
110 常夏セット 13800 海の家

キーワード:select、from

【サンプルソースコード】

1-2.sql

/* 1-2.必要な項目だけを確認 − 特定列の表示 */ /*  販売番号、商品名、合計金額、販売先のみを表示する */ select sale_id, product_name, product_total, customer from sale;

1-3

金額の小さいもの順 − 並べ替え

販売データ(販売日、販売先、合計金額)を、金額の小さいもの順に見る。

sale_date customer product_total
2007/6/7 A商店 420
2007/5/4 A商店 800
2007/7/10 B商店 2600
2007/4/1 A商店 2800
2007/5/20 C商店 4680
2007/7/7 C商店 5340
2007/4/2 B商店 6000
2007/8/1 海の家 13800
2007/5/12 A商店パリ支店 19200
2007/7/1 W商店 42000

キーワード:order by

【サンプルソースコード】

1-3.sql

/* 1-3.金額の小さいもの順 − 並べ替え */ select sale_date, customer, product_total from sale order by product_total;

1-4

まとめ買い順 − 降順の並べ替え

販売データ(販売日、販売先、個数)を、まとめ買いした順(個数が多い順)に見る。

sale_date customer product_count
2007/5/12 A商店パリ支店 32
2007/4/1 A商店 20
2007/5/20 C商店 18
2007/4/2 B商店 15
2007/7/1 W商店 12
2007/7/10 B商店 10
2007/8/1 海の家 6
2007/6/7 A商店 3
2007/7/7 C商店 3
2007/5/4 A商店 2

キーワード:order by

【サンプルソースコード】

1-4.sql

/* 1-4.まとめ買い順 − 降順の並べ替え */ select sale_date, customer, product_count from sale order by product_count desc;

1-5

商品名と金額順 − 複数キーの並べ替え

商品名順に表示し、同じ商品の中では金額が少ないもの順に表示する。
(販売日、商品名、合計金額、販売先のみ表示)

sale_date product_name product_total customer
2007/5/4 いちご 800 A商店
2007/4/2 いちご 6000 B商店
2007/5/12 いちじく 19200 A商店パリ支店
2007/6/7 りんご 420 A商店
2007/4/1 りんご 2800 A商店
2007/7/10 マンゴー 2600 B商店
2007/5/20 マンゴー 4680 C商店
2007/7/1 メロン 42000 W商店
2007/7/7 七夕セット 5340 C商店
2007/8/1 常夏セット 13800 海の家

キーワード:order by

【サンプルソースコード】

1-5.sql

/* 1-5.商品名と金額順 − 複数キーの並べ替え */ /*  order byに複数の列を指定すると、左から順番に評価される */ /*  それぞれにasc、descを使い分けてもいい */ select sale_date, product_name, product_total, customer from sale order by product_name, product_total;

1-6

販売番号の指定

販売番号が「104」のデータの、販売番号、販売日、商品名、合計金額、販売先を表示する。

sale_id sale_date product_name product_total customer
104 2007/5/12 いちじく 19200 A商店パリ支店

キーワード:where

【サンプルソースコード】

1-6.sql

/* 1-6.販売番号の指定 */ select sale_id, sale_date, product_name, product_total, customer from sale where sale_id=104;

1-7

販売番号の指定2

販売番号が「104」のデータの、販売日、商品名、合計金額、販売先を表示する。
ここでは、販売番号は表示しなくていい。

sale_date product_name product_total customer
2007/5/12 いちじく 19200 A商店パリ支店
【サンプルソースコード】

1-7.sql

/* 1-7.販売番号の指定2 */ /*  selectで指定していない列をwhereに使うこともできる */ /*  条件は適用されるが、表示はされない */ select sale_date, product_name, product_total, customer from sale where sale_id=104;

1-8

特定の販売先のデータを確認 − 文字データの条件

販売先が「A商店」のデータの、販売日、商品名、合計金額、販売先を表示する。
(文字型データに対する条件であることに注意する。)

sale_date product_name product_total customer
2007/4/1 りんご 2800 A商店
2007/5/4 いちご 800 A商店
2007/6/7 りんご 420 A商店

キーワード:where

【サンプルソースコード】

1-8.sql

/* 1-8.特定の販売先のデータを確認 − 文字データの条件 */ /*  文字型データは、値を「'(シングルクォーテーション)」で囲む */ select sale_date, product_name, product_total, customer from sale where customer='A商店';

1-9

支店も含んだ販売先の指定 − 文字データのあいまい検索

「A商店」の支店も含めて、販売日、商品名、合計金額、販売先を表示する。
※注意事項※
サンプルデータでは「A商店」と「A商店パリ支店」のみだが、将来、「A商店目黒支店」や「A商店お台場支店」などもできるかもしれない。
そういったことも含め、本店のA商店と支店のA商店○○を表示するようにする。

sale_date product_name product_total customer
2007/4/1 りんご 2800 A商店
2007/5/4 いちご 800 A商店
2007/5/12 いちじく 19200 A商店パリ支店
2007/6/7 りんご 420 A商店
【サンプルソースコード】

1-9.sql

/* 1-9.支店も含んだ販売先の指定 − 文字データのあいまい検索 */ /*  販売先が「A商店」で始まるデータを検索する */ select sale_date, product_name, product_total, customer from sale where customer like 'A商店%';

1-10

セット商品のデータを確認 − 文字データのあいまい検索

「○×セット」のような商品の販売データについて、販売日、商品名、合計金額、販売先を表示する。

sale_date product_name product_total customer
2007/7/7 七夕セット 5340 C商店
2007/8/1 常夏セット 13800 海の家

キーワード:where、like、_(アンダーバー)、%

【サンプルソースコード】

1-10.sql

/* 1-10.セット商品のデータを確認 − 文字データのあいまい検索 */ /*  「○×セット」のような商品の販売データを表示する */ select sale_date, product_name, product_total, customer from sale where product_name like '%セット';

1-11

金額5000円以上のデータを確認 − 数値データの条件

一度に5000円以上売り上げたデータの、販売日、商品名、合計金額、販売先を表示する。

sale_date product_name product_total customer
2007/4/2 いちご 6000 B商店
2007/5/12 いちじく 19200 A商店パリ支店
2007/7/1 メロン 42000 W商店
2007/7/7 七夕セット 5340 C商店
2007/8/1 常夏セット 13800 海の家

キーワード:where

【サンプルソースコード】

1-11.sql

/* 1-11.金額5000円以上のデータを確認 − 数値データの条件 */ select sale_date, product_name, product_total, customer from sale where product_total >= 5000;

1-12

商品名と単価を確認

商品名と単価を表示する。

product_name product_price
りんご 140
いちご 400
いちご 400
いちじく 600
マンゴー 260
りんご 140
メロン 3500
七夕セット 1780
マンゴー 260
常夏セット 2300

キーワード:−

【サンプルソースコード】

1-12.sql

/* 1-12.商品名と単価を確認 */ /*  商品名と単価だけを表示すると、同じ組合せがたくさん出てくる */ select product_name, product_price from sale;

1-13

商品リストの確認 − 重複データの排除

商品名と単価を表示する。
重複データは排除し、存在する商品名と単価の組合せだけを表示する。

product_name product_price
りんご 140
いちご 400
いちじく 600
マンゴー 260
メロン 3500
七夕セット 1780
常夏セット 2300

キーワード:select、distinct

【サンプルソースコード】

1-13.sql

/* 1-13.商品リストの確認 − 重複データの排除 */ /*  distinctは、内容の重複する行を排除する */ select distinct product_name, product_price from sale;


課題

スポーツクラブの会員データがある。
以下のテーブルをもとに、仕様を満たすようなSQL文を作成する。

[ member ]

member_id regist_date member_name birthday member_gender class member_fee area lesson
M101 2005/2/10 秋田きりん 1978/5/4 男性 マスター 10000 上野 スカッシュ
N511 2006/8/15 長野となかい 1980/10/9 男性 ナイト 8000 上野 (NULL)
M340 2006/8/15 山口ぱんだ 1976/4/28 女性 マスター 10000 上野 ジャズダンス
H028 2006/10/10 長崎らっこ 1979/7/16 男性 ホリデー 7200 品川 スイミング
M502 2007/1/20 石川うさぎ 1976/5/21 女性 マスター 10000 千葉 (NULL)
N113 2007/1/31 岡山ふくろう 1965/12/30 男性 ナイト 8000 上野 (NULL)
D327 2007/3/6 富山ひよこ 1986/4/23 女性 デイ 6500 千葉 (NULL)
N280 2007/4/1 香川ひらめ 1972/6/24 男性 ナイト 8000 品川 (NULL)
H335 2007/4/18 宮崎まんぼう 1968/3/12 男性 ホリデー 7200 品川 (NULL)
M211 2007/4/28 福岡かまきり 1980/10/8 男性 マスター 10000 千葉 ジャズダンス

 

課題1-1.マスター会員の人を表示する。

※member_id, member_name, class を表示すること

[結果表示]

member_id member_name class
M101 秋田きりん マスター
M211 福岡かまきり マスター
M340 山口ぱんだ マスター
M502 石川うさぎ マスター

課題1-2.ジャズダンスのレッスンを受けている人を表示する。

※member_id, member_name, lesson を表示すること

[結果表示]

member_id member_name lesson
M211 福岡かまきり ジャズダンス
M340 山口ぱんだ ジャズダンス

課題1-3.何かのレッスンを受けている人を表示する。

※member_id, member_name, lesson を表示すること

[結果表示]

member_id member_name lesson
H028 長崎らっこ スイミング
M101 秋田きりん スカッシュ
M211 福岡かまきり ジャズダンス
M340 山口ぱんだ ジャズダンス

課題1-4.年齢が若い人から順番に表示する。

※member_id, member_name, birthday を表示すること

[結果表示]

member_id member_name birthday
D327 富山ひよこ 1986-04-23
N511 長野となかい 1980-10-09
M211 福岡かまきり 1980-10-08
H028 長崎らっこ 1979-07-16
M101 秋田きりん 1978-05-04
M502 石川うさぎ 1976-05-21
M340 山口ぱんだ 1976-04-28
N280 香川ひらめ 1972-06-24
H335 宮崎まんぼう 1968-03-12
N113 岡山ふくろう 1965-12-30

Copyright © Xincor miXell Co., Ltd. All rights reserved

results matching ""

    No results matching ""