免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
oracle 創(chuàng)建視圖
1,視圖概念:
      視圖是一個邏輯結(jié)構(gòu),本身不包含任何數(shù)據(jù),是一個可命名的select語句
      透過視圖可以看到底層數(shù)據(jù),但是視圖和數(shù)據(jù)是相互獨(dú)立的。
2,創(chuàng)建視圖需要有DBA權(quán)限。
3,語法:CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view[(alias[,alias]..)]
      AS subquery;
4,create or replace 表示若視圖存在則替換掉;
如:
SQL> create view testview3
  2  as
  3  select * from test3;
視圖已創(chuàng)建。
 
SQL> create view testview3
  2  as
  3  select * from test3;
create view testview3
            *
第 1 行出現(xiàn)錯誤:
ORA-00955: 名稱已由現(xiàn)有對象使用
修改視圖:
SQL> create or replace view testview3
  2  as
  3  select * from test3;
視圖已創(chuàng)建。
5,force 表示若表不存在則強(qiáng)制創(chuàng)建視圖;
如:SQL> create view tt
  2  as
  3  select * from tt;
create view tt
            *
第 1 行出現(xiàn)錯誤:
ORA-01731: 出現(xiàn)循環(huán)的視圖定義

SQL> create force view tt
  2  as
  3  select * from tt;
警告: 創(chuàng)建的視圖帶有編譯錯誤。
6,查看視圖結(jié)構(gòu):
SQL> desc testview3;
 名稱                                      是否為空? 類型
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL NUMBER(38)
 LNAME                                              VARCHAR2(20)
 FNAME                                              VARCHAR2(20)
7,在使用聚合函數(shù)創(chuàng)建視圖時,需制定別名;
SQL> create view testview4
  2  as
  3  select id,sum(id) from test3
  4  group by id;
select id,sum(id) from test3
          *
第 3 行出現(xiàn)錯誤:
ORA-00998: 必須使用列別名命名此表達(dá)式

SQL> create view testview4
  2  as
  3  select id,sum(id) test3_id from test3
  4  group by id;
視圖已創(chuàng)建。
===========================
***************************
8,更新視圖:
SQL> select * from testview5;
  TEST5_ID TEST5_NAME           TEST5_FNAME
---------- -------------------- --------------------
         3 kong                 sales
         2 hh
SQL> update testview5 set test5_name='kong_gai'
  2  where test5_id=3;
已更新 1 行。
SQL> select * from testview5;
  TEST5_ID TEST5_NAME           TEST5_FNAME
---------- -------------------- --------------------
         3 kong_gai             sales
         2 hh
=========================================================
CREATE TABLE count1
(num1 NUMBER(4,2),
num2 NUMBER(5,2),
result NUMBER(6,2));
select * from count1
insert into count1 values(1,2,3)
insert into count1 values(3,4,5)
--------------------------
create or replace view testview3
as
select * from count1
-------------------
select * from testview3
update testview3 set num1 = 9 where num2=2 ----通過更新視圖,更新了視圖檢索的數(shù)據(jù),同時更新了基本表中的數(shù)據(jù):
1. select * from testview3
2. select * from count1         
---------------------------------
 
對另一個數(shù)據(jù)對象而言同義詞是一個別名。public同義詞是針對所有用戶的,相對而言private同義詞則只針對對象擁有者或被授予權(quán)限的賬戶。
在本地?cái)?shù)據(jù)庫中同義詞可以表示表、視圖、序列、程序、函數(shù)或包等數(shù)據(jù)對象,也可以通過鏈接表示另一個數(shù)據(jù)庫的對象。
------------------------------
1.創(chuàng)建同義詞語句:

  create public synonym table_name for user.table_name;

  其中第一個table_name和第二個table_name可以不一樣。

  此外如果要創(chuàng)建一個遠(yuǎn)程的數(shù)據(jù)庫上的某張表的同義詞,需要先創(chuàng)建一個Database Link(數(shù)據(jù)庫連接)來擴(kuò)展訪問,然后在使用如下語句創(chuàng)建數(shù)據(jù)庫同義詞:create synonym table_name for table_name@DB_Link;

  當(dāng)然,你可能需要在user用戶中給當(dāng)前用戶(user2)授權(quán): grant select/delete/update on user2

2.刪除同義詞:

  drop public synonym table_name;

  3.查看所有同義詞:

  select * from dba_synonyms

  同義詞擁有如下好處:
節(jié)省大量的數(shù)據(jù)庫空間,對不同用戶的操作同一張表沒有多少差別;
擴(kuò)展數(shù)據(jù)庫的使用范圍,能夠在不同的數(shù)據(jù)庫用戶之間實(shí)現(xiàn)無縫交互;
同義詞可以創(chuàng)建在不同的數(shù)據(jù)庫服務(wù)器上,通過網(wǎng)絡(luò)實(shí)現(xiàn)連接。
 
 -------------------------------------------------
問題描述:
有兩個oralce實(shí)例 SID分別為 A B
A中a用戶下含有表objects
B中有b用戶
使在B中用b用戶登錄后執(zhí)行
select * from objects
能顯示出A中a.objects的全部內(nèi)容

問題解答:
用b用戶登錄到B中,執(zhí)行:
create public synonym objects for a.objects@A
此時執(zhí)行select * from objects 就能顯示出a.objects的全部內(nèi)容

需要注意的一點(diǎn):
B中不能含有table b.objects否則語句可以執(zhí)行,但是執(zhí)行select操作時顯示的仍然為b.objects的內(nèi)容,需要先把.objects刪除掉,重新建立synonym即可。

刪除同義詞

使用DROP SYNONYM語句刪除不再需要的同義詞 要想刪除私有同義詞 就省略 PUBLIC 關(guān)鍵字;

要想刪除公共同義詞 就要包括PUBLIC 關(guān)鍵字


DROP SYNONYM emp;  刪除名為emp 的私有同義詞

DROP PUBLIC SYNONYM public_emp;  刪除名為public_emp的公有同義詞
--------------------------------------------------
 
 
 
 
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
oracle同義詞
Oracle同義詞創(chuàng)建及其作用
Oracle 數(shù)據(jù)庫中V$、GV$、X$、V
深入淺出Oracle學(xué)習(xí)筆記(3)
深入了解Oracle數(shù)據(jù)字典
Oracle創(chuàng)建用戶并給用戶授權(quán)查詢指定表或視圖的權(quán)限
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服