11月27日(木)3コマ目

今日、やったこと

[練習問題 解説]練習問題1

今日のホワイトボード

[練習問題 解説]練習問題1

1.ユーザー作成、システム権限付与

ユーザー作成は管理者権限が必要なため、systemユーザーでログイン。

1.1 ichiroユーザー作成

図 ichiroユーザー作成

1.2 ichiroユーザーにシステム権限付与

図 ichiroユーザーにシステム権限付与

1.3 ichiroユーザーでDBに接続

connコマンドはSQL*Plusのコマンド。SQLではない。<= 末尾の ; は不要
図 ichiroユーザーでDB接続

2.テーブル作成

テーブルを4つ作成。

2.1 ジャンルマスタテーブル作成

図 ジャンルマスタテーブル作成

2.2 商品マスタテーブル作成

図 商品マスタテーブル作成

2.3 売上データテーブル作成

売上日列には初期値を指定する必要がある。
初期値の指定はdefaultで行う。
図 売上データテーブル作成

sysdateはオラクルの現在日時を取得するための関数。
図 sysdate関数

2.4 売上詳細データテーブル作成

主キー列は売上ID列と商品ID列の複合キーに注意。
複合キーの主キー制約はprimary key()のカッコ内にカンマ区切りで主キー列名を記述
図 売上詳細データテーブル作成

3. おまけ課題

サンプルデータを登録後、commitを実行。

3.1 問1
とくにややこしいことはないかと。
図 おまけ課題 問1

3.2 問2
ジャンルでグループ化し、各グループの行数=商品点数になる。
図 おまけ課題 問2

3.3 問3
where句でグループ関数が使えるといいが、できない。
そこで、まずサブクエリで定価の最高値を取得。
サブクエリの結果をwhere句で使って、最高値商品情報を取得。
図 おまけ課題 問3

3.4 問4
段階を追って確認。

まず、下図のようなグループ毎の定価列の最高値(定価最高値)のテーブルがあると便利。
図 ジャンル別定価最高値を検索

ないので、サブクエリをfrom句に書いてテーブルのように扱う。

商品マスタテーブルとサブクエリ実行結果を結合条件
 ジャンルIDが等しい かつ 定価が定価最高値と等しい
行同士を結合する。
図 サブクエリ実行結果と商品マスタテーブル等を結合
これが欲しい結果。

次回は

今までのテストをします。
何を見ても構いませんが、自力でやってください。
そのあと、View。


このブログの人気の投稿

10月30日(木)3コマ目

1月22日(木)3コマ目

12月4日(木)3コマ目