投稿

ラベル(ビュー)が付いた投稿を表示しています

1月22日(金)2コマ目

今日、やったこと 確認テスト(おもにview) 今日の確認テスト 解答例をあげときます。 問1 とくにややこしいところはないと思います。 CREATE OR REPLACE VIEW 蔵書一覧(蔵書ID, 蔵書名, ジャンル名) AS SELECT 蔵書マスタ.ID, 蔵書マスタ.タイトル, ジャンルマスタ.ジャンル名 FROM 蔵書マスタ, ジャンルマスタ WHERE 蔵書マスタ.ジャンルID = ジャンルマスタ.ID; 問2 未返却=返却日列がnull です。 ヒントに書いてますが、「xx列がnull」はwhere句で xx is null です。nullか否かの判断には残念ながら=は使えません。 create or replace view 貸出中一覧(貸出ID, 会員名, 蔵書名, 貸出日) as select 貸出.ID, 会員マスタ.名前, 蔵書マスタ.タイトル, 貸出詳細.貸出日 from 蔵書マスタ, 会員マスタ, 貸出, 貸出詳細 where 会員マスタ.ID=貸出.会員ID and 貸出.ID=貸出詳細.貸出ID and  蔵書マスタ.ID=貸出詳細.蔵書ID and  貸出詳細.返却日 is null; 問3 またまた未返却が出てきます。 create or replace view ジャンル別貸出中蔵書数(ジャンル名, 貸出冊数) as select ジャンルマスタ.ジャンル名, count(*) from ジャンルマスタ, 蔵書マスタ, 貸出詳細 where ジャンルマスタ.ID=蔵書マスタ.ジャンルID and  蔵書マスタ.ID=貸出詳細.蔵書ID and 返却日 is null group by ジャンルマスタ.ジャンル名; 問4 create or replace view 会員別貸出中蔵書数(会員名, 貸出蔵書冊数) as select 会員マスタ.名前, count(*) from 会員マスタ, 貸出, 貸出詳細 where 会員マスタ.ID=貸出.会員ID and 貸出.ID=貸出詳細.貸出ID gro...

1月15日(金)2コマ目

今日、やったこと ビューのおさらい課題 その1、その2 今日の課題 解答例をあげておきます。 ビューのおさらい課題 その1 テーブル作成 商品マスタ create table 商品マスタ( ID number(2), 商品名  nvarchar2(64) not null, 定価 number(5), constraint pk_商品 primary key(ID), constraint chk_商品定価 check(定価>=0) ); 顧客マスタ create table 顧客マスタ( ID number(2), 氏名 nvarchar2(64) not null, constraint pk_顧客 primary key(ID) ); 売上データ create table 売上データ( ID number(4), 商品ID number(2), 顧客ID number(2), 数量 number(4), 売上日 date, constraint pk_売上データ primary key(ID, 商品ID), constraint fk_売上_商品 foreign key(商品ID) references 商品マスタ(ID), constraint fk_売上_顧客 foreign key(顧客ID) references 顧客マスタ(ID), constraint chk_売上数量 check(数量 >= 0) ); ビュー作成 商品別販売回数 create or replace view 商品別販売回数(商品名, 販売回数) as  select 商品名, count(*)  from 商品マスタ, 売上データ where 商品マスタ.ID=売上データ.商品ID group by 商品名; 顧客別商品購入回数 create or replace view 顧客別商品購入回数(顧客名, 商品名, 購入回数) as  select 氏名, 商品名, count(*) from 商品マスタ, 顧客マスタ, 売上データ where 商品マスタ.ID=売上データ.商品ID and 顧客マスタ.ID=売上データ.顧客ID group by 氏名, 商品名 order by 氏名, 商品名; 商品別販売...

11月27日(金)2コマ目

イメージ
今日、やったこと オラクルのデータディクショナリ SQLのDDLの基本パターン ビュー 今日のホワイトボード オラクルのデータディクショナリ オラクルはどんなテーブルがある、とかどんなビューがあるといった情報を管理するためのテーブル(のようなモノ)を持っています。これをデータディクショナリと呼びます。 データディクショナリは結構たくさんありますが、名前にパターンがあります。 図 オラクルのデータディクショナリ このパターンをおさえておけば、とっさのときに対応しやすいです。 SQLのDDLの基本パターン 今まで扱ったSQLは以下の2種類に分類できます。 DML Data Manipulation Languageの略。 データ操作を行うSELECT、INSERT、UPDATE、DELETEです。 DDL Data Definition Languageの略。 テーブルやビューなどデータベースオブジェクトの生成、変更、削除を行うCREATE、ALTER、DROPです。 DDLも基本パターンがあります。 図 SQLのDDL基本パターン ビュー ビューの作成、変更 ビューの変更を行うALTER VIEWはありません。 かわりにCREATE OR REPLACE VIEWで既存ビューの置き換えができます。 図 CREATE VIEWとCREATE OR REPLACE VIEW ビューの列に別名を設定 ビューの列名は無指定時はテーブルの列名がそのまま引き継がれます。 別名をつけたい場合は下図のようにビュー名のあとに()で指定します。 図 ビューの列に別名をつける ビュー作成 先週作った商品一覧ビューを変更しました。 〇商品一覧ビューに「税込み価格」列を追加 create or replace view 商品一覧 as select 商品名, ジャンル名, 価格...

11月20日(金)2コマ目

イメージ
今日、やったこと 確認テスト1 ビュー 今日の確認テスト 解答例を公開しておきます。 図 確認テスト1 解答例 問1 図 確認テスト1 解答例 問2 図 確認テスト1 解答例 問3 図 確認テスト1 解答例 問4,問5 今日のホワイトボード ビュー 1.テーブル作成、データ登録 以下のテーブルを作成しました。 〇テーブル名:ジャンルマスタ 列名 データ型 ID number(2) ジャンル名 nvarchar2(8) サンプルデータ ID ジャンル名 1 めん類 2 どんぶり 〇テーブル名:商品マスタ 列名 データ型 ID number(2) 商品名 nvarchar2(8) ジャンルID number(2) 価格 number(4) サンプルデータ ID 商品名 ジャンル名 価格 1 うどん 1 500 2 そば 1 500 3 きつねうどん 1 600 4 たぬきそば 1 550 5 ラーメン 1 700 6 ...