SQL語(yǔ)句中create的使用 (synonym同義詞).doc_第1頁(yè)
SQL語(yǔ)句中create的使用 (synonym同義詞).doc_第2頁(yè)
SQL語(yǔ)句中create的使用 (synonym同義詞).doc_第3頁(yè)
SQL語(yǔ)句中create的使用 (synonym同義詞).doc_第4頁(yè)
SQL語(yǔ)句中create的使用 (synonym同義詞).doc_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

SQL語(yǔ)句中create的使用 (synonym同義詞)select * from emp;等用于select * from abc;建立共有的同義詞如果用戶的等級(jí)不夠建立public同義詞,可以在system下授權(quán):grant create 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;引入同義詞(Synonym)的原因在一些商業(yè)數(shù)據(jù)庫(kù)中,有時(shí)信息系統(tǒng)的設(shè)計(jì)或開(kāi)發(fā)者為了增加易讀性,故意定義一些很長(zhǎng)的表名(也可能是其它的對(duì)象)。這樣雖然增加了易讀性,但在引用這些表 或?qū)ο髸r(shí)就不那么方便,也容易產(chǎn)生輸入錯(cuò)誤。另外在實(shí)際的商業(yè)公司里,一些用戶覺(jué)得某一個(gè)對(duì)象名有意義也很好記,但另一些用戶可能覺(jué)得另一個(gè)名字更有意 義。ORACLE系統(tǒng)提供的同義詞(Synonym)就是用來(lái)解決以上的難題的。設(shè)想一下在您的日常工作中您每天都要使用supplier表許多次,而且您的英文打字的水平并不高。在這種情形下,您就可以借助于同義詞(Synonym)來(lái)幫助您提高生產(chǎn)力。怎樣創(chuàng)建同義詞(Synonym)現(xiàn)在您就可以使用如下的CREATE SYNONYM語(yǔ)句(例15-38)為表supplier建了一個(gè)同義詞(別名)s。SQL CREATE SYNONYM s FOR supplier;同義詞已創(chuàng)建?,F(xiàn)在您就可以把同義詞(別名)s當(dāng)成supplier來(lái)使用。您可以使用如下的查尋語(yǔ)句來(lái)驗(yàn)證這一點(diǎn)。SQL SELECT * FROM s;S_CODE SNAME CONTACT PHONE FAX - - - - -2000 仙客來(lái)百貨 張根發(fā) 4444944 44448442010 心太軟小商品 石鐵心 1741741食為天餐具 金元寶 1671671 16716742032 食為先餐具 陸合彩 1681684 1681684那您可能會(huì)問(wèn),您怎樣才能知道您到底擁有哪些同義詞(Synonym)呢?還記得數(shù)據(jù)字典user_objects嗎?既然同義詞(Synonym)是對(duì)象,它們?cè)谶@個(gè)數(shù)據(jù)字典中就一定有記載。因此您可以使用如下的查尋語(yǔ)句(例 15-41)從數(shù)據(jù)字典user_objects中得到您所擁有的全部同義詞(Synonym)的信息。當(dāng)然為了使SQL*PLUS的顯示輸出更加清晰您 應(yīng)該先使用如下的SQL*PLUS格式化命令SQL col object_name format a20SQL SELECT object_name, object_type, created, status FROM user_objectsWHERE object_type LIKE SYN%;OBJECT_NAME OBJECT_TYPE CREATED STATUS- - - -S SYNONYM 28-4月 -03 VALID 顯示的結(jié)果表明:在您的模式(用戶)下只有一個(gè)同義詞(Synonym),那就是您剛剛建立的同義詞(Synonym)s。但是顯示的結(jié)果并沒(méi)有告訴您這個(gè)同義詞(Synonym)到底是基于那個(gè)表的及表的主人是誰(shuí)。如果您有一個(gè)這樣同義詞(Synonym)時(shí), 這方面的信息也許就顯得特別重要了。您可以使用如下的查尋語(yǔ)句從數(shù)據(jù)字典user_synonyms中得到這方面的信息。當(dāng)然為了使 SQL*PLUS的顯示輸出更加清晰您應(yīng)該先使用如下的SQL*PLUS格式化命令SQL col table_owner for a12SQL col table_name for a12SQL SELECT synonym_name, table_owner, table_name FROM user_synonyms;SYNONYM_NAME TABLE_OWNER TABLE_NAME- - -S SCOTT SUPPLIER 顯示的結(jié)果表明:在您的模式(用戶)下只有一個(gè)同義詞(Synonym),那就是您剛剛建立的同義詞(Synonym)s。該同義詞(Synonym)是基于表supplier,而這個(gè)表的主人是SCOTT。創(chuàng)建同義詞(Synonym)的語(yǔ)句格式如下:CREATE PUBLIC SYNONYM 同義詞的名字FOR 對(duì)象名;其中: PUBLIC: 系統(tǒng)中所有的用戶都可以訪問(wèn)所創(chuàng)建的同義詞 同義詞的名字: 所創(chuàng)建的同義詞的名字 對(duì)象名: 創(chuàng)建的同義詞所基于的對(duì)象名在創(chuàng)建同義詞時(shí)要注意的事項(xiàng): 所基于的對(duì)象不能包含在任何軟件包中 一個(gè)私有的同義詞不能與任何該用戶下的其它對(duì)象重名您剛剛創(chuàng)建的同義詞(Synonym)s是一個(gè)私有的同義詞,即只能在您的用戶(SCOTT)下直接引用,如果其它用戶引用它就必需冠以用戶名.(既 scott.s的方式引用)。這樣作很不方便。如果您所建的表supplier是一個(gè)所有用戶共享并經(jīng)常使用的表,您應(yīng)該怎樣處理這一問(wèn)題呢?創(chuàng)建公用同義詞(Synonym)您可以為supplier表創(chuàng)建一個(gè)公用同義詞(Synonym)。為了演示方便,您應(yīng)該從當(dāng)前的SCOTT用戶切換到另一個(gè)用戶下,如SYSTEM。您可以使用如下的SQL*PLUS命令(例15-44)來(lái)完成用戶的切換。SQL CONNECT SYSTEM/MANAGER已連接。 現(xiàn)在您如果使用如下的查尋語(yǔ)句,您是不會(huì)得到您想要的信息的。SQL SELECT * FROM s;結(jié)果FROM s * ERROR 位于第 2 行: ORA-00942: 表或視圖不存在您如果再使用如下的查尋語(yǔ)句,您也同樣不會(huì)得到您想要的信息的。SQL SELECT * FROM supplier;結(jié)果FROM supplier * ERROR 位于第 2 行: ORA-00942: 表或視圖不存在如果您在同義詞(Synonym)s之前冠以用戶名.(scott.),您就可以得到您所需要的信息了。如下面的查尋語(yǔ)句SQL SELECT * FROM scott.s;結(jié)果S_CODE SNAME CONTACT PHONE FAX - - - - -2000 仙客來(lái)百貨 張根發(fā) 4444944 44448442010 心太軟小商品 石鐵心 1741741食為天餐具 金元寶 1671671 16716742032 食為先餐具 陸合彩 1681684 1681684由于其它用戶在引用這一同義詞(Synonym)s時(shí)必須冠以您的用戶名(.).,這樣很不方便,而且也容易產(chǎn)生輸入錯(cuò)誤,所以您可以使用如下的DDL語(yǔ)句為scott用戶下的supplier建立一個(gè)公用的同義詞(Synonym)ss。SQL CREATE PUBLIC SYNONYM ss FOR scott.supplier;同義詞已創(chuàng)建?,F(xiàn)在您就可以利用您剛剛創(chuàng)建的公用的同義詞(Synonym)ss來(lái)獲得您所希望得到的信息。您可以使用如下的查尋語(yǔ)句SQL SELECT * FROM ss;S_CODE SNAME CONTACT PHONE FAX - - - - -2000 仙客來(lái)百貨 張根發(fā) 4444944 44448442010 心太軟小商品 石鐵心 1741741食為天餐具 金元寶 1671671 16716742032 食為先餐具 陸合彩 1681684 1681684您也可能會(huì)問(wèn),其它用戶是否也可以使用同樣的方法訪問(wèn)同義詞(Synonym)ss。答案是肯定的。如果您還有疑問(wèn)的話,您可以試著以如下的SQL*PLUS命令(例15-50)以SYS用戶登錄進(jìn)入ORACLE數(shù)據(jù)庫(kù)。SQL CONNECT SYS/ORACLE AS SYSDBA;已連接。 現(xiàn)在您就可以利用公共同義詞(Synonym)ss來(lái)獲得您所希望得到的信息。您可以使用如下的查尋語(yǔ)句SQL SELECT * FROM ss;S_CODE SNAME CONTACT PHONE FAX - - - - -2000 仙客來(lái)百貨 張根發(fā) 4444944 44448442010 心太軟小商品 石鐵心 1741741食為天餐具 金元寶 1671671 16716742032 食為先餐具 陸合彩 1681684 1681684ORACLE并沒(méi)有提供修改同義詞(Synonym)的命令。如果您要修改某一同義詞(Synonym)的話,您要先把它刪除掉,之后再重新建立這個(gè)同義詞(Synonym)。刪除同義詞(Synonym)如果經(jīng)過(guò)了一段時(shí)間,您發(fā)現(xiàn)同義詞(Synonym)s已經(jīng)沒(méi)什么用處了,您就可以使用如下的DDL語(yǔ)句將它刪除掉。不過(guò)在這之前您可能得先使用如下的SQL*PLUS命令重新注冊(cè)到SCOTT用戶下。SQL CONNECT SCOTT/TIGER已連接。 SQL DROP SYNONYM s;同義詞已丟棄。雖然結(jié)果已經(jīng)顯示:“同義詞已丟棄。”,但是為了謹(jǐn)慎起見(jiàn),您還是應(yīng)該使用如下的查尋語(yǔ)句查看一下數(shù)據(jù)字典user_objects。SQL SELECT object_name, object_type, created, statusFROM user_objects WHERE object_t

溫馨提示

  • 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)論