有關(guān)Oracle數(shù)據(jù)庫(kù)中同義詞的簡(jiǎn)單介紹
Oracle數(shù)據(jù)庫(kù)中有關(guān)同義詞的一些知識(shí)是我們本文主要要介紹的內(nèi)容,首先我們先看一個(gè)語(yǔ)句,如下:
create synonym table_name for user.table_name;
其中***個(gè)user_table和第二個(gè)user_table可以不一樣。
此外如果要?jiǎng)?chuàng)建一個(gè)遠(yuǎn)程的數(shù)據(jù)庫(kù)上的某張表的同義詞,需要先創(chuàng)建一個(gè)Database Link(數(shù)據(jù)庫(kù)連接)來(lái)擴(kuò)展訪問,然后在使用如下語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)同義詞:create synonym table_name for table_name@DB_Link;
當(dāng)然,你可能需要在user用戶中給當(dāng)前用戶(user2)授權(quán): grant select/delete/update on user2。
創(chuàng)建好同義詞之后,你可以對(duì)它進(jìn)行DML(insert,update,delete)操作,當(dāng)然select語(yǔ)句時(shí)肯定支持的。刪除同義詞:drop synonym table_name;這里的table_name是指同義詞的表名。
同義詞擁有如下好處:節(jié)省大量的數(shù)據(jù)庫(kù)空間,對(duì)不同用戶的操作同一張表沒有多少差別;擴(kuò)展的數(shù)據(jù)庫(kù)的使用范圍,能夠在不同的數(shù)據(jù)庫(kù)用戶之間實(shí)現(xiàn)無(wú)縫交互;同義詞可以創(chuàng)建在不同一個(gè)數(shù)據(jù)庫(kù)服務(wù)器上,通過網(wǎng)絡(luò)實(shí)現(xiàn)連接。
查看所有同義詞:
select * from dba_synonyms
在oracle中創(chuàng)建同義詞:
我們都知道,在oracle中對(duì)用戶的管理是使用權(quán)限的方式來(lái)管理的,也就是說(shuō),如果我們想使用數(shù)據(jù)庫(kù),我們就必須得有權(quán)限,但是如果是別人將權(quán)限授予了我們,我們也是能對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的,但是我們必須要已授權(quán)的表的名稱前鍵入該表所有者的名稱,所以這就是比較麻煩的,遇到這種情況,我們?cè)撛趺崔k呢?創(chuàng)建個(gè)同義詞吧!這樣我們就可以直接使用同義詞來(lái)使用表了。
創(chuàng)建同義詞的具體語(yǔ)法是:create [public] SYNONYM synooym for object;其中synooym表示要?jiǎng)?chuàng)建的同義詞的名稱,object表示表,視圖,序列等我們要?jiǎng)?chuàng)建同義詞的對(duì)象的名稱。
CREATE PUBLIC SYNONYM public_emp FOR jward.emp; -- jward 用戶名
刪除同義詞:
使用DROP SYNONYM語(yǔ)句刪除不再需要的同義詞,要想刪除私有同義詞 就省略 PUBLIC 關(guān)鍵字要想刪除公共同義詞就要包括PUBLIC關(guān)鍵字。
DROP SYNONYM emp; --刪除名為emp 的私有同義詞。
DROP PUBLIC SYNONYM public_emp; --刪除名為public_emp的公有同義詞。
關(guān)于Oracle數(shù)據(jù)庫(kù)同義詞的知識(shí)就介紹這里了,如果您想了解更多Oracle數(shù)據(jù)庫(kù)的知識(shí),可以看一下這里的文章:http://database.51cto.com/oracle/,相信一定可以給您帶來(lái)收獲的。






