2011年6月7日火曜日

ビューを利用する

CREATE TABLEで作成された表は実表とよばれます。ビューは実表ではありません。間違いが許されないデータベース管理にとって、実表を守るという意味でビューは重要な役割を果たします。

■ビューの作成
必要な表の必要な列だけを、必要な条件で抜き出したものです。

SQL> CREATE VIEW ビューの名前
                AS SELECT 列名 条件;

例)
SQL> select * from 社員;
社員番号    社員名                職務         上司    入社日         給与   歩合給 部門番号
---------- -------------------- ------------------ ---------- -------------- ---------------- ---------- ----------
7900      田中                 業務         7698 01-12-03        195000      30
7902      桜井                 主任         7566 01-12-03         300000      20
7934      田村                 業務         7782 02-01-03    230000      10

3行が選択されました。

SQL> create view 給与は秘密
2         as select 社員番号,社員名,職務,上司,入社日,部門番号
3         from 社員;

ビューが作成されました。

SQL> select * from 給与は秘密;

社員番号 社員名                職務                         上司  入社日 部門番号
---------- -------------------- ------------------ --------------- ------------- --------------
7900 田中                 業務                         7698  01-12-03         30
7902 桜井                 主任                         7566  01-12-03         20
7934 田村                 業務                         7782  02-01-03         10

3行が選択されました。


■ビューと元になる表の関係
元になる表の値が更新されると、ビューの値も更新されます。

例)
SQL> INSERT INTO 社員 VALUES('9999','おらくる','主任','','','1000000','1000','20');

1行が作成されました。

SQL> select * from 給与は秘密;

社員番号 社員名                職務                         上司 入社日         部門番号
-------------- -------------------- ----------------- ---------- -------------- --------------
9999 おらくる                主任                                              20
7876 長谷川                SE                         7788  07-07-13         20
7900 田中                 業務                         7698  01-12-03         30
7902 桜井                 主任                         7566  01-12-03         20
7934 田村                 業務                         7782  02-01-03         10

5行が選択されました。

■ビューの確認
ビューの存在は、USER_VIEWSで確認することができます。
ビューの名前はVIEW_NAME、ビューの内容はTEXTに保存されています。

例)
SQL> select VIEW_NAME,TEXT FROM USER_VIEWS
2                 WHERE VIEW_NAME='給与は秘密';

VIEW_NAME                                                TEXT
---------------------------------------------------- --------------------------------------------------------------------------------
給与は秘密                                                select 社員番号,社員名,職務,上司,入社日,部門番号 from 社員


■ビューの削除
DROPコマンドを使います。
SQL> DROP VIEW ビューの名前;

例)
SQL> DROP VIEW 給与は秘密;

ビューが削除されました。

参考)
『基礎からのOracle』 西沢夢路著

0 件のコメント:

コメントを投稿