程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle視圖及其他對象操作

oracle視圖及其他對象操作

編輯:Oracle教程

oracle視圖及其他對象操作


視圖及其他對象操作

實驗目的

 (1) 掌握視圖的建立、查詢、修改、刪除操作。

 (2) 掌握同義詞的建立、查詢、修改、刪除操作,比較對同義詞的操作與對原數據庫對象的操作是否一致。

 (3) 掌握序列的建立、查詢、修改、刪除操作,利用序列向數據庫表中插入數據。

實驗內容

1.創建視圖

(1) 利用企業管理器為實現顯示醫保卡信息創建視圖,該視圖中包括醫保卡信息、醫保卡所屬人信息和所屬人單位信息,視圖名為“ygbx_card_view”。

(2)利用SQL*Plus或iSQL*Plus為實現員工持醫保卡到醫院消費的功能創建視圖,該視圖中包括員工的信息、醫保卡信息、醫保信息和消費等信息,視圖名為“consume_view”。

SQL> create view consume_view as select staff.sno,sname,ssex,sbirthday,

2 saddress,stel,staff.cno,staff.bno,ctype,cmoney,idate,imoney,see.hno,csdate,mname,mnum,csmoney

3 from staff,insurance,card,consume,see

4 where staff.sno=see.sno and see.hno=consume.cno and consume.cno=card.cno and card.cno=insurance.cno ;

(3) 利用SQL*Plus或iSQL*Plus為企業醫保繳費信息功能創建視圖,該視圖中包括醫保繳費的企業信息,醫保卡信息和企業醫保繳費費用等信息,視圖名為“insurnce_view”。

SQL> create view insurance_view as select insurance.bno,bname,btype,baddress,btel,card.cno,ctype,cmoney,

2 hno,csdate,mname,mnum,csmoney

3 from insurance,business,card,consume

4 where insurance.bno=business.bno and insurance.cno=card.cno

5 ;

(4) 利用SQL*Plus或iSQL*Plus為企業表創建視圖,視圖名為“business_view”。

SQL> create view business_view as

2 select bno,bname,btype,baddress,btel

3 from business;

2.查看視圖

(1) 利用企業管理器查看“ygbx_user”方案下的視圖。

(2) 利用企業管理器查看“consume_view”視圖的信息。

(3)利用SQL*Plus或iSQL*Plus查看“card_view”視圖的子查詢語句。

SQL> select text from user_views where view_name='YGBX_CARD_UIEW'

2 ;

(4)利用SQL*Plus或iSQL*Plus顯示“insurance_view”視圖的信息。

SQL> select view_name,view_type,read_only,text,text_length from user_views

2 where view_name='insurance_view'

3 ;

3.視圖數據的更新

(1) 利用SQL*Plus或iSQL*Plus向“business_view”插入一個記錄,企業編號為“B1997010287”,企業名稱為“格林制藥”,企業類型為“企業”,企業地址為“鴨綠江街98號”,聯系電話為“84692315”。

SQL> alter table business modify(bno char(20));

表已更改。

SQL> insert into business_view values('B1997010287','格林制藥','企業','鴨綠江街98號','84692315');

已創建 1 行。

(2) 利用SQL*Plus或iSQL*Plus查看“business”表是否有變化。

SQL> select * from business;

4.刪除視圖

(1) 利用企業管理器刪除“business_view”視圖。

(2) 利用企業管理器刪除“card_view”視圖。

(3) 利用SQL*Plus或iSQL*Plus刪除“consume_view”視圖。

SQL> drop view consume_view;

(4) 利用SQL*Plus或iSQL*Plus刪除“insurnce_view”視圖。

SQL> drop view insurance_view;

5.創建同義詞

(1) 利用企業管理器創建企業表同義詞,名為“qyb”。

SQL> grant create public synonym to scott;

授權成功。

(2) 利用SQL*Plus或iSQL*Plus創建醫保卡表的同義詞,名為“ybk”。

SQL> create synonym ybk for card;

同義詞已創建。

6.查詢同義詞

(1) 利用企業管理器查看同義詞“qyb”。

(2) 利用SQL*Plus或iSQL*Plus查看同義詞“ybk”。

SQL> select * from user_synonyms where synonym_name='ybk';

7.刪除同義詞

(1) 利用企業管理器刪除同義詞“qyb”。

(2) 利用SQL*Plus或iSQL*Plus刪除同義詞“ybk”。

SQL> drop synonym ybk;

同義詞已刪除。

8.創建序列

(1) 利用企業管理器創建序列,該序列最大值為“28000”,最小值為“60”,步長為“1”,可循環,序列名為“ygbx_seq1”。

(2) 利用SQL*Plus或iSQL*Plus創建序列,該序列最大值無限制,最小值為“1”,步長為“10”,序列名為“ygbx_seq2”。

SQL> create sequence ygbx_seq2 nocycle noorder nomaxvalue minvalue 1

2 increment by 10 start with 1;

序列已創建。

9.查詢序列

(1) 利用企業管理器查看序列“ygbx_seq1”。

(2) 利用SQL*Plus或iSQL*Plus查看同義詞“ygbx_seq2”。

SQL> select * from user_sequences where sequence_name='ygbx_seq2';

10.修改序列

(1) 利用企業管理器修改序列“ygbx_seq1”,將該序列最大值設為“82000”,最小值設為“100”,步長設為“5”。

最小值不能大於當前值,所以最小值為60

(2) 利用SQL*Plus或iSQL*Plus修改序列“ygbx_seq2”,將該序列最大值設為“1000”。

SQL> alter sequence ygbx_seq2 maxvalue 1000;

序列已更改。

11.刪除序列

(1) 利用企業管理器刪除序列“ygbx_seq1”。

(2) 利用SQL*Plus或iSQL*Plus刪除序列“ygbx_seq2”。

SQL> drop sequence ygbx_seq2;

序列已刪除。

附錄:員工醫療保險系統表

表1 企業(business)表結構

表2醫院(hospital)表結構

表3醫保卡(card)表結構

表4員工(staff)表結構

表5就診表(see)結構

表6消費(consume)表結構

表7醫保(insurance)表結構

實驗總結:

1. 可以采用CREATE OR REPLACE VIEW 語句修改視圖,實質是刪除原視圖並重建該視圖,但是會保留該視圖上授予的各種權限。

2. 序列用於產生惟一序號的數據庫對象,用於為多個數據庫用戶依次生成不重復的連續整數。通常使用序列自動生成表中的主鍵值。序列不占用實際的存儲空間,在數據字典中只存儲序列的定義描述。

3. 視圖是從一個或多個表或視圖中提取出來的數據的一種表現形式。在數據庫中只有視圖的定義,而沒有實際對應“表”的存在,因此視圖是一個“虛”表。當對視圖進行操作時,系統根據視圖定義臨時生成數據。

4. 可以使用DROP VIEW語句刪除視圖。刪除視圖後,該視圖的定義從數據字典中刪除,同時該視圖上的權限被回收,但是對數據庫表沒有任何影響。

5. 同義詞是數據庫中表、索引、視圖或其他模式對象的一個別名。利用同義詞,一方面為數據庫對象提供一定的安全性保證,例如可以隱藏對象的實際名稱和所有者信息,或隱藏分布式數據庫中遠程對象的位置信息;另一個方面是簡化對象訪問。

6. 視圖創建後,就可以對視圖進行操作,包括數據查詢、DML操作等。因為視圖是“虛表”,因此對視圖的操作最終轉換為對基本表的操作。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved