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 ジャンル名;



コメント

このブログの人気の投稿

1月15日(金)2コマ目

1月29日(金)2コマ目