創(chuàng)建使用Oracle同義詞_第1頁(yè)
創(chuàng)建使用Oracle同義詞_第2頁(yè)
創(chuàng)建使用Oracle同義詞_第3頁(yè)
創(chuàng)建使用Oracle同義詞_第4頁(yè)
創(chuàng)建使用Oracle同義詞_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、杳肴所有同義詞:select * from dba_synonyms刪除同義詞使用drop synonym語(yǔ)句刪除不再需要的同義詞要想刪除私有同義詞就省略public關(guān)鍵'f-要 想刪除公共同義詞就要包括public關(guān)鍵寧drop synonym emp;- 刪除名為 emp 的私有同義詞 drop public synonym public_emp;-刪除名力 public_emp 的公有同義詞se lect * from emp;等用于 selec t * from abc ;建立共有的同義詞sql如果用戶的等級(jí)不夠建立p ublic同義詞,可以在system下授權(quán):grant c

2、reate any synonym to scott;grant create public synonym to scott;収消授權(quán):revoke create any synoym from scott;revoke create public synoym from scott;取消同義詞:drop public synonym abc;授權(quán)収消同義詞:grant dorp public synonym to scott;取消授權(quán):revoke drop public synonym to scott;1 5.9引入同義詞(sy nonym)的原因在一些商業(yè)數(shù)據(jù)庫(kù)中,有時(shí)信息系統(tǒng)的設(shè)計(jì)

3、或開發(fā)者為了增加易讀性,故意定義一些很長(zhǎng) 的表名(也可能是其它的對(duì)象)。這樣雖然增加了易讀性,但在引用這些表或?qū)ο髤季筒?那么方便,也容易產(chǎn)生輸入錯(cuò)誤。另外在實(shí)際的商業(yè)公司里,一些用戶覺(jué)得某一個(gè)對(duì)象名 有意義也很好記,但另一些用戶可能覺(jué)得另一個(gè)名字更有意義。oracle系統(tǒng)提供的同義詞(synonymh就是用來(lái)解決以上的難題的。設(shè)想一下在您的r常工 作中您每天都要使用suppl ier表許多次,而且您的英文打字的水平并不高。在這種情形下, 您就可以借助于同義詞(synonym )來(lái)幫助您提高生產(chǎn)力。1 5.10怎押劃建同義詞(synonym)現(xiàn)在您就可以使用如下的create synonym語(yǔ)

4、句(例15-38)為表su pplier建了一個(gè)同義 詞(別名)s。例 15-3 8sqlcreate synonym s2 for supplier;例15-38結(jié)果同義詞已創(chuàng)建?,F(xiàn)在您就可以把同義詞(別名)s當(dāng)成sup plier來(lái)使用。您可以使用如下的查尋語(yǔ)句(例 15-39)來(lái)驗(yàn)證這一點(diǎn)。例 15-39sql> select *2 from s;例15-39結(jié)果s_code sname contact phone fax 2 000仙客來(lái)百貨張根發(fā)4444944 44 448442010心太軟小商品石鐵心174 1741為天餐具金元寶1671671 1

5、6716742032食為先餐具陸合彩168 1684 1681684那您可能會(huì)問(wèn),您怎樣才能知道您到底擁有哪些同義詞(synonym)呢?還記得數(shù)據(jù)字典user_o bjects嗎?既然同義詞(synonym)是對(duì)象,它們?cè)谶@個(gè)數(shù)據(jù)字典巾就 一定有記載。因此您可以使用如丁的查尋語(yǔ)句(例15-41)從數(shù)據(jù)字典u ser_objects中得到 您所擁有的全部同義詞($0門的信息。當(dāng)然為了使sql*pl us的顯示輸出更加清晰您應(yīng) 該先使用如下的sql *plus格式化命令(例15-40)。例 15-4 0sqlcol object_name for a20例 15-41sqlselect obje

6、ct_name, object_type, created, status2 from user_objects3 where object_type like syn%'例15-4 1結(jié)果object_name object_type created statuss synonym 28-4 月-03 va lid例15-41顯示的結(jié)果表明:在您的模式(用戶)下只有一個(gè)同義詞(synonym),那就是您剛 剛建立的同義詞(sy nonym)so但是例1 5-41顯示的結(jié)果并沒(méi)有告訴您這個(gè)同義詞(syn onym)到底是基于那個(gè)表的及表的 主人是誰(shuí)。如果您有一個(gè)這樣同義詞(sy non

7、ym)時(shí),這方面的信息也汴就顯得特別重要了。 您可以使用如下的查尋語(yǔ)句(例15-43)從數(shù)據(jù)字典user_syno nyms屮得到這方而的信息。 當(dāng)然為了使sql*plus的顯示輸出更加清晰您應(yīng)該先使用如下的sql*p山s格式化命令(例 15-42)。例 15-42sql> col table_owner for al2 sql> col table_name for al2例 15 -43sqlselect synonym_name, table_owner, table_name 2 from user_synonyms;例15-43結(jié)果synonym_name table_o

8、wner table_names scott supplier例15-4 3顯示的結(jié)果表明:在您的模式(用戶)下只有一個(gè)同義詞(synonym),那就是您剛 剛建立的同義詞(synonym)s。該同義詞(synonym)是基于表supplier,而這個(gè)表的主人是 sco tto創(chuàng)建同義詞(syn onym)的語(yǔ)句格式如下:create pub lic synonym 同義詞的名字for對(duì)象名;其屮:0 public:系統(tǒng)中所有的用戶都可以訪問(wèn)所創(chuàng)建的同義詞 0同義詞的名字:所創(chuàng)建的同義詞的名字 0對(duì)象名:創(chuàng)建的同義詞所基于的對(duì)象名 在創(chuàng)建同義詞時(shí)要注意的事項(xiàng):0所基于的對(duì)象不能包含在任何軟件包

9、中0個(gè)私有的同義詞不能與任何該用戶下的其它對(duì)象重名您剛剛創(chuàng)建的同義詞(synonym)s是一個(gè)私有的同義詞,即只能在您的用p (scott)下直 接引用,如果其它用戶引用它就必需冠以用戶名.(既scott.s的方式引用)。這樣作很不方 便。如果您所建的表supplier是一個(gè)所有用戶共享并經(jīng)常使用的表,您應(yīng)該怎樣處理這一 問(wèn)題呢?15.11創(chuàng)建公用同義詞(s ynonym)您可以為s upplier表創(chuàng)建一個(gè)公用同義詞(synony m。為了演示方便,您應(yīng)該從當(dāng)前的 scott用戶切換到另一個(gè)用戶下,如s ystem。您可以使用如下的sql*plus命令(例15- 44)來(lái)完成用戶的切換。例

10、15-44sqlconnect system/manager例15-44結(jié)果己連接?,F(xiàn)在您如果使用如下的查尋語(yǔ)句(例15-45),您是不會(huì)得到您想要的信息的。例 15-45sql> select *2 from s;例15-45結(jié)果froms本error位于第2行:ora-0094 2:表或視圖不存在您如果洱使用如下的查尋語(yǔ)句(例15-46),您也同樣不會(huì)得到您想要的信息的。例 15-46sql> select *2 from supplier;例15-46結(jié)果 from supplier本e rror位于第2行: ora-00942:表或視閣不存在如果您在同義詞(synonym之

11、前冠以用戶名.(scott.),您就可以得到您所耑要的信息了。 如下面的查尋語(yǔ)句(例15-47 )o例 15-47 sqlselect *2 from scott.s;例15-47結(jié)果s_code sname contact phone fax 2000仙客來(lái)百貨張根發(fā)44 44944 444484 42010心太軟小商品石鐵心1741741為天餐具金元寶1 671671 16716 742032食為先餐具陸合彩1681684 1681684由于其它用戶在引用這一同義詞(s ynonym)s時(shí)必須冠以您的用戶名(.).,這樣很不方便, 而且也容易產(chǎn)生輸入錯(cuò)誤,所以您可

12、以使川如下的ddl語(yǔ)句(例15-48)為scott用戶下的 supplier建立一個(gè)公用的同義詞(sy nonym>ss。例 15 -48sqlcreate public synonym ss2 for scott.supplier;例15-48結(jié)果同義詞已創(chuàng)建?,F(xiàn)在您就可以利用您剛剛創(chuàng)建的公用的同義詞(synonym )ss來(lái)獲得您所希望得到的信息。 您可以使用如下的查尋語(yǔ)句(例15-49)。例 15-49sqlselect *2 from ss;例15-49結(jié)果s_code sname contact phone fax 2000仙客來(lái)百貨張根發(fā)4444944 44448442010

13、心太軟小商品石鐵心1 741741 17417 422021食為天餐具金元寶1671671 16716742032食為先餐具陸合彩1 681684 16816 84您也可能會(huì)h,其它用戶是否也可以使川同樣的方法訪悶同義詞(synon ym)ss。答案是肯定 的。如果您還有疑問(wèn)的話,您可以試著以如下的sql*plus命令(例15-5 0)以sys用戶登 錄進(jìn)入oracle數(shù)裾庫(kù)。例 1 5-50sqlconnect sys/oracle as sys dba; 例15-50結(jié)果已連接?,F(xiàn)在您就可以利用公共同義詞(synonym )ss來(lái)獲得您所希望得到的信息。您可以使用如下的查尋語(yǔ)句(例15-5

14、1)。例 15-51sqlselect *2 from ss;例15-51結(jié)果s_code sname contact phone fax 2000仙客來(lái)百貨張根發(fā)4444944 44448442010心太軟小商品石鐵心1 741741 17417 422021食為天餐具金元寶1671671 16716742032食為先餐具陸合彩1 681684 16816 84oracle并沒(méi)有提供修改同義詞(synon ym)的命令。如果您要修改某一同義詞(synon ym)的 話,您要先把它刪除掉,之后再重新建立這個(gè)同義詞(synonym)。15.12刪除同義詞(synonym)如果經(jīng)過(guò)了一段時(shí)間,您發(fā)

15、現(xiàn)同義詞(synonymls已經(jīng)沒(méi)什么用處了,您就可以使用如下的 ddl語(yǔ)句(例15-53)將它刪除掉。不過(guò)在這之前您可能得先使用如下的sql*plus命令 (例15-52)重新注冊(cè)到scott用戶下。例 15-52sqlconnect scott/tiger 例15-52結(jié)果己連接。例 15-5 3sql> drop synonym s;例15 -53結(jié)果同義詞已丟棄。雖然例15-53結(jié)果已經(jīng)顯示:“同義詞已丟棄?!?,但是為了謹(jǐn)慎起見,您還是應(yīng)該使用如 下的查尋語(yǔ)句(例15-54)查看一下數(shù)掘字典user_obj ects。例 15-54sql> select object_name, object_type, created, status2 from user_objects3 where object_type like 'syn%'例15-5 4結(jié)果未選定行 或者您應(yīng)該使川如下的查尋語(yǔ)句(例1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論