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 ----通過(guò)更新視圖,更新了視圖檢索的數據,同時(shí)更新了基本表中的數據:
1. select * from testview3
2. select * from count1
---------------------------------
對另一個(gè)數據對象而言同義詞是一個(gè)別名。public同義詞是針對所有用戶(hù)的,相對而言private同義詞則只針對對象擁有者或被授予權限的賬戶(hù)。
在本地數據庫中同義詞可以表示表、視圖、序列、程序、函數或包等數據對象,也可以通過(guò)鏈接表示另一個(gè)數據庫的對象。
------------------------------
1.創(chuàng )建同義詞語(yǔ)句: | create public synonym table_name for user.table_name; |
其中第一個(gè)table_name和第二個(gè)table_name可以不一樣。
此外如果要創(chuàng )建一個(gè)遠程的數據庫上的某張表的同義詞,需要先創(chuàng )建一個(gè)Database Link(數據庫連接)來(lái)擴展訪(fǎng)問(wèn),然后在使用如下語(yǔ)句創(chuàng )建數據庫同義詞:create synonym table_name for table_name@DB_Link;
當然,你可能需要在user用戶(hù)中給當前用戶(hù)(user2)授權: grant select/delete/update on user2
2.刪除同義詞:
| drop public synonym table_name; |
3.查看所有同義詞:
| select * from dba_synonyms |
同義詞擁有如下好處:
節省大量的數據庫空間,對不同用戶(hù)的操作同一張表沒(méi)有多少差別;
擴展數據庫的使用范圍,能夠在不同的數據庫用戶(hù)之間實(shí)現無(wú)縫交互;
同義詞可以創(chuàng )建在不同的數據庫服務(wù)器上,通過(guò)網(wǎng)絡(luò )實(shí)現連接。
-------------------------------------------------
問(wèn)題描述:
有兩個(gè)oralce實(shí)例 SID分別為 A B
A中a用戶(hù)下含有表objects
B中有b用戶(hù)
使在B中用b用戶(hù)登錄后執行
select * from objects
能顯示出A中a.objects的全部?jì)热?br>
問(wèn)題解答:
用b用戶(hù)登錄到B中,執行:
create public synonym objects for a.objects@A
此時(shí)執行select * from objects 就能顯示出a.objects的全部?jì)热?br>
需要注意的一點(diǎn):
B中不能含有table b.objects否則語(yǔ)句可以執行,但是執行select操作時(shí)顯示的仍然為b.objects的內容,需要先把.objects刪除掉,重新建立synonym即可。
刪除同義詞
使用DROP SYNONYM語(yǔ)句刪除不再需要的同義詞 要想刪除私有同義詞 就省略 PUBLIC 關(guān)鍵字;
要想刪除公共同義詞 就要包括PUBLIC 關(guān)鍵字
DROP SYNONYM emp; 刪除名為emp 的私有同義詞
DROP PUBLIC SYNONYM public_emp; 刪除名為public_emp的公有同義詞
--------------------------------------------------