SQL課題

■ SQL課題


はじめに


まずはこの見本をみて残りのテーブルを作ってみましょう!

【store_tableテーブル】


CREATE TABLE store_table(
store_code CHAR(4) NOT NULL,
store_name VARCHAR(20) NOT NULL,
store_nameAbc VARCHAR(50) NOT NULL,
update_day DATE NOT NULL,
CONSTRAINT pk_store PRIMARY KEY(store_code))
;

残りの2つのテーブルを作り終わったら今度はテーブルの中にデータを入れていきましょう!
下記を参考に残りもやってみてください。

INSERT INTO store_table(
store_code, store_name, store_nameAbc, update_day) 
VALUES('EA01','札幌店','SAPPOROTEN','2000-01-01'),
('EA02','仙台店','SENDAITEN','2000-03-01'),
('EA03','郡山店','KOORIYAMATEN','2000-04-01'),
('EA04','宇都宮店','UTSUNOMIYATEN','2005-04-01'),
('EA05','埼玉店','SAITAMATEN','2005-07-01'),
('EA06','丸の内店','MARUNOUTHITEN','2008-03-01'),
('EA07','横浜店','YOKOHAMATEN','2009-03-01'),
('EA08','千葉店','CHIBATEN','2009-04-01'),
('WE01','栄店','SAKAETEN','2010-03-01'),
('WE02','心斎橋店','SHINSAIBASHITEN','2011-03-01')
;

データを入れ終わったらSELECT文で確認してみましょう!

select * from テーブル名

store_tableテーブル(店舗テーブル)


物理名 理論名 データ型 サイズ キー NULL可 備考
store_code 店舗コード char 4 primary
store_name 店舗名 varchar 20
store_nameAbc 店舗名(アルファベット) varchar 50
update_day 更新日 date

goods_tableテーブル(商品テーブル)


物理名 理論名 データ型 サイズ キー NULL可 備考
goods_code 商品コード char 4 primary
goods_name 商品名 varchar 50
price 値段 integer 初期値:0
update_day 更新日 date

stock_tableテーブル(在庫テーブル)


物理名 理論名 データ型 サイズ キー NULL可 備考
goods_code 商品コード char 4 primary
store_code 店舗コード char 4 primary
quantity 在庫数 integer 初期値:0
update_day 更新日 date

insert内容


store_table

店舗コード 店舗名 店舗名(アルファベット) 更新日
EA01 札幌店 SAPPOROTEN 2000-01-01
EA02 仙台店 SENDAITEN 2000-03-01
EA03 郡山店 KOORIYAMATEN 2000-04-01
EA04 宇都宮店 UTSUNOMIYATEN 2005-04-01
EA05 埼玉店 SAITAMATEN 2005-07-01
EA06 丸の内店 MARUNOUTHITEN 2008-03-01
EA07 横浜店 YOKOHAMATEN 2009-03-01
EA08 千葉店 CHIBATEN 2009-04-01
WE01 栄店 SAKAETEN 2010-03-01
WE02 心斎橋店 SHINSAIBASHITEN 2011-03-01

goods_table

商品コード 商品名 値段 更新日
S987 セーター 29000 2000-05-01
M032 マフラー 7000 2000-07-01
K209 カットソー 12000 2003-01-01
Z939 ジーンズ 40000 2004-01-01
B345 ドカジャン 8000 2005-06-01
M286 マフラー 4000 2006-08-01
P175 パーカー 20000 2009-11-01
K206 カットソー 5000 2010-01-01
K456 カットソー 26000 2011-02-01
N094 ニット 3000 2012-01-01

stock_table

商品コード 店舗コード 在庫数 更新日
S987 EA01 20 2000-06-01
S987 EA03 10 2000-06-23
M032 EA02 0 2000-07-01
K209 EA03 13 2000-09-01
K209 EA05 1 2000-09-01
K209 EA07 5 2000-09-01
Z939 EA04 10 2004-05-01
Z939 EA08 30 2004-05-01
B345 EA05 13 2005-05-01
B345 WE01 11 2005-05-01
M286 EA06 23 2006-12-01
M286 EA07 22 2006-12-01
M286 WE02 15 2006-12-01
P175 EA07 16 2007-04-01
K206 EA01 17 2007-05-01
K206 EA08 8 2007-05-01
P093 EA01 15 2009-09-01
P093 WE01 0 2009-09-01
N094 WE02 30 2010-05-01

ER図


ER図とは、データベースのテーブル(Entity)とテーブル同士の関連(Relationship)を図に表したものであり、
データベースのテーブル設計に用いられる。ER図において、エンティティは四角形の記号、リレーションは四角形同士を結ぶ線で表現される。

※DBeaverというツールを使っています。気になる方はDBeaverより取ってみてね!!!!

課題


/* ■ [回答]と記載のある箇所へ、1〜8の各課題内容に沿ったSQL文を記述しなさい。 */

-- 1. 店舗テーブルから店舗名を抽出しなさい。また、列名の表示は別名で'店舗名'とすること。
-- [回答]


-- 2. 店舗情報を店舗名のABC順に抽出しなさい。
-- [回答]


-- 3. 在庫テーブルに店舗テーブル、商品テーブルを「内部結合」し、店舗名・商品名・在庫数を全て取得しなさい。
-- [回答]


-- 4. 商品テーブルから全商品の単価の平均値を抽出しなさい。
-- [回答]


-- 5. 店舗コード='EA01'の在庫数の平均値より大きい在庫数を持つ店舗コードを抽出しなさい。
-- [回答]


-- 6. 商品テーブルに「商品コード='M001'、商品名='マフラー'、単価=4500円、更新日付=本日日付」のデータを追加しなさい。※実行後のSELECT結果も貼付すること。
-- [回答]


-- 7. 在庫テーブルの商品コード='S987'、かつ、店舗コード='EA01'に対して、「在庫数=10、更新日付=本日日付」で更新しなさい。※実行後のSELECT結果も貼付すること。
-- [回答]


-- 8. 7で更新した商品を削除しなさい。※実行後のSELECT結果も貼付すること。
-- [回答]

また、問題1と2に関しては取得結果を以下に示しますので参考にしてください。
問1

問2

課題提出方法


4-3フォルダを作成して、その中に「sqlTask.sql」ファイルを作成してください。
上記、課題に記載された内容をsqlTask.sqlにコピーして、 [回答] 部分にSQL文を記述してください。
また、実行後のSELECT結果の提出に関しては、SELECT文と実行結果をスクリーンショットに撮り、保存した画像を4-3フォルダの中に入れ、これまでと同様に提出してください。
尚、スクリーンショットは 実行結果のレコードすべてが映るようコンソール部分を調整して 撮ってください。

カテゴリー

アーカイブ

Close Bitnami banner
Bitnami