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が等しい かつ 定価が定価最高値と等しい 行同士を結合する。 図 サブクエリ実行結果と商品マスタテーブル等を結合 これが欲しい結果。 次回...