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 商品名, ジャンル名, 価格, 価格*1.1 as 税込価格
from 商品マスタ, ジャンルマスタ
where 商品マスタ.ジャンルid=ジャンルマスタ.id;
〇商品一覧ビューの「価格」列を「税抜価格」列に別名を設定
create or replace view 商品一覧(商品名, ジャンル名, 税抜価格, 税込価格)
as
select 商品名, ジャンル名, 価格, 価格*1.1
from 商品マスタ, ジャンルマスタ
where 商品マスタ.ジャンルid=ジャンルマスタ.id;
先週作ったジャンルマスタテーブル、商品マスタテーブルを利用してビューを作成しました。
〇ジャンル名が「めん類」だけの「めん一覧」ビューを作成
列は
- 商品マスタ.ID => 別名「No」に
- 商品名
- 価格
create or replace view めん一覧(No, 商品名, 価格)
as
select 商品マスタ.ID, 商品名, 価格
from 商品マスタ, ジャンルマスタ
where 商品マスタ.ジャンルid=ジャンルマスタ.id and
ジャンル名='めん類';
〇税込み価格が600以下の商品だけの「六百円以下商品一覧」ビューを作成
列は
- 商品名
- ジャンル名
- 価格 => 別名「税抜価格」に
- 税込価格
create or replace view 六百円以下商品一覧(商品名, ジャンル名, 税抜価格, 税込価格)
as
select 商品名, ジャンル名, 価格, 価格*1.1
from 商品マスタ, ジャンルマスタ
where 商品マスタ.ジャンルid=ジャンルマスタ.id and
価格*1.1<=600;
〇ジャンルごとの商品点数、最高値、最安値が取得できる「ジャンル別商品データ」ビューを作成
列は
- ジャンル名
- 商品点数
- 最高値
- 最安値
create or replace view ジャンル別商品データ(ジャンル名, 商品点数, 最高値, 最安値)
as
select ジャンル名, count(*), max(価格), min(価格)
from 商品マスタ, ジャンルマスタ
where 商品マスタ.ジャンルid=ジャンルマスタ.id
group by ジャンル名;




コメント