<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Oralce中的synonym同義詞

      設定同義詞,方便使用
      select * from emp;等用于select * from abc;
      建立共有的同義詞
      如果用戶的等級不夠建立public同義詞,可以在system下授權:
      grant create any synonym to scott;
      grant create public synonym to scott;
      取消授權:
      revoke create any synoym from scott;
      revoke create public synoym from scott;
      取消同義詞:
      drop public synonym abc;
      授權取消同義詞:
      grant dorp public synonym to scott;
      取消授權:
      revoke drop public synonym to scott;
      15.9 引入同義詞(Synonym)的原因
      在一些商業數據庫中,有時信息系統的設計或開發者為了增加易讀性,故意定義一些很長的表名(也可能是其它的對象)。這樣雖然增加了易讀性,但在引用這些表 或對象時就不那么方便,也容易產生輸入錯誤。另外在實際的商業公司里,一些用戶覺得某一個對象名有意義也很好記,但另一些用戶可能覺得另一個名字更有意 義。
      ORACLE系統提供的同義詞(Synonym)就是用來解決以上的難題的。設想一下在您的日常工作中您每天都要使用supplier表許多次,而且您的英文打字的水平并不高。在這種情形下,您就可以借助于同義詞(Synonym)來幫助您提高生產力。
      15.10 怎樣創建同義詞(Synonym)
      現在您就可以使用如下的CREATE SYNONYM語句(例15-38)為表supplier建了一個同義詞(別名)s。
      例15-38
      SQL> CREATE SYNONYM s
      2 FOR supplier;
      例15-38結果
      同義詞已創建。
      現在您就可以把同義詞(別名)s當成supplier來使用。您可以使用如下的查尋語句(例15-39)來驗證這一點。
      例15-39
      SQL> SELECT *
      2 FROM s;
      例15-39結果
      S_CODE SNAME CONTACT PHONE FAX
      ---------- ------------------------- --------------- --------------- -------
      2000 仙客來百貨 張根發 4444944 4444844
      2010 心太軟小商品 石鐵心 1741741 1741742
      2021 食為天餐具 金元寶 1671671 1671674
      2032 食為先餐具 陸合彩 1681684 1681684
      那您可能會問,您怎樣才能知道您到底擁有哪些同義詞(Synonym)呢?
      還記得數據字典user_objects嗎?既然同義詞(Synonym)是對象,它們在這個數據字典中就一定有記載。因此您可以使用如下的查尋語句(例 15-41)從數據字典user_objects中得到您所擁有的全部同義詞(Synonym)的信息。當然為了使SQL*PLUS的顯示輸出更加清晰您 應該先使用如下的SQL*PLUS格式化命令(例15-40)。
      例15-40
      SQL> col object_name for a20
      例15-41
      SQL> SELECT object_name, object_type, created, status
      2 FROM user_objects
      3 WHERE object_type LIKE 'SYN%';
      例15-41結果
      OBJECT_NAME OBJECT_TYPE CREATED STATUS
      -------------------- ------------------ ---------- ------
      S SYNONYM 28-4月 -03 VALID
      例15-41顯示的結果表明:在您的模式(用戶)下只有一個同義詞(Synonym),那就是您剛剛建立的同義詞(Synonym)s。
      但是例15-41顯示的結果并沒有告訴您這個同義詞(Synonym)到底是基于那個表的及表的主人是誰。如果您有一個這樣同義詞(Synonym)時, 這方面的信息也許就顯得特別重要了。您可以使用如下的查尋語句(例15-43)從數據字典user_synonyms中得到這方面的信息。當然為了使 SQL*PLUS的顯示輸出更加清晰您應該先使用如下的SQL*PLUS格式化命令
      (例15-42)。
      例15-42
      SQL> col table_owner for a12
      SQL> col table_name for a12
      例15-43
      SQL> SELECT synonym_name, table_owner, table_name
      2 FROM user_synonyms;
      例15-43結果
      SYNONYM_NAME TABLE_OWNER TABLE_NAME
      ------------------------------ ------------ ----------
      S SCOTT SUPPLIER
      例15-43顯示的結果表明:在您的模式(用戶)下只有一個同義詞(Synonym),那就是您剛剛建立的同義詞(Synonym)s。該同義詞(Synonym)是基于表supplier,而這個表的主人是SCOTT。
      創建同義詞(Synonym)的語句格式如下:
      CREATE [PUBLIC] SYNONYM 同義詞的名字
      FOR 對象名;
      其中:
      ? PUBLIC: 系統中所有的用戶都可以訪問所創建的同義詞
      ? 同義詞的名字: 所創建的同義詞的名字
      ? 對象名: 創建的同義詞所基于的對象名
      在創建同義詞時要注意的事項:
      ? 所基于的對象不能包含在任何軟件包中
      ? 一個私有的同義詞不能與任何該用戶下的其它對象重名
      您剛剛創建的同義詞(Synonym)s是一個私有的同義詞,即只能在您的用戶(SCOTT)下直接引用,如果其它用戶引用它就必需冠以用戶名.(既 scott.s的方式引用)。這樣作很不方便。如果您所建的表supplier是一個所有用戶共享并經常使用的表,您應該怎樣處理這一問題呢?
      15.11 創建公用同義詞(Synonym)
      您可以為supplier表創建一個公用同義詞(Synonym)。為了演示方便,您應該從當前的SCOTT用戶切換到另一個用戶下,如SYSTEM。您可以使用如下的SQL*PLUS命令(例15-44)來完成用戶的切換。
      例15-44
      SQL> CONNECT SYSTEM/MANAGER
      例15-44結果
      已連接。
      現在您如果使用如下的查尋語句(例15-45),您是不會得到您想要的信息的。
      例15-45
      SQL> SELECT *
      2 FROM s;
      例15-45結果
      FROM s
      *
      ERROR 位于第 2 行:
      ORA-00942: 表或視圖不存在
      您如果再使用如下的查尋語句(例15-46),您也同樣不會得到您想要的信息的。
      例15-46
      SQL> SELECT *
      2 FROM supplier;
      例15-46結果
      FROM supplier
      *
      ERROR 位于第 2 行:
      ORA-00942: 表或視圖不存在
      如果您在同義詞(Synonym)s之前冠以用戶名.(scott.),您就可以得到您所需要的信息了。如下面的查尋語句(例15-47)。
      例15-47
      SQL> SELECT *
      2 FROM scott.s;
      例15-47結果
      S_CODE SNAME CONTACT PHONE FAX
      ---------- ------------------------- --------------- --------------- -------
      2000 仙客來百貨 張根發 4444944 4444844
      2010 心太軟小商品 石鐵心 1741741 1741742
      2021 食為天餐具 金元寶 1671671 1671674
      2032 食為先餐具 陸合彩 1681684 1681684
      由于其它用戶在引用這一同義詞(Synonym)s時必須冠以您的用戶名(.).,這樣很不方便,而且也容易產生輸入錯誤,所以您可以使用如下的DDL語句(例15-48)為scott用戶下的supplier建立一個公用的同義詞(Synonym)ss。
      例15-48
      SQL> CREATE PUBLIC SYNONYM ss
      2 FOR scott.supplier;
      例15-48結果
      同義詞已創建。
      現在您就可以利用您剛剛創建的公用的同義詞(Synonym)ss來獲得您所希望得到的信息。您可以使用如下的查尋語句(例15-49)。
      例15-49
      SQL> SELECT *
      2 FROM ss;
      例15-49結果
      S_CODE SNAME CONTACT PHONE FAX
      ---------- ------------------------- --------------- --------------- -------
      2000 仙客來百貨 張根發 4444944 4444844
      2010 心太軟小商品 石鐵心 1741741 1741742
      2021 食為天餐具 金元寶 1671671 1671674
      2032 食為先餐具 陸合彩 1681684 1681684
      您也可能會問,其它用戶是否也可以使用同樣的方法訪問同義詞(Synonym)ss。答案是肯定的。如果您還有疑問的話,您可以試著以如下的SQL*PLUS命令(例15-50)以SYS用戶登錄進入ORACLE數據庫。
      例15-50
      SQL> CONNECT SYS/ORACLE AS SYSDBA;
      例15-50結果
      已連接。
      現在您就可以利用公共同義詞(Synonym)ss來獲得您所希望得到的信息。您可以使用如下的查尋語句(例15-51)。
      例15-51
      SQL> SELECT *
      2 FROM ss;
      例15-51結果
      S_CODE SNAME CONTACT PHONE FAX
      ---------- ------------------------- --------------- --------------- -------
      2000 仙客來百貨 張根發 4444944 4444844
      2010 心太軟小商品 石鐵心 1741741 1741742
      2021 食為天餐具 金元寶 1671671 1671674
      2032 食為先餐具 陸合彩 1681684 1681684
      ORACLE并沒有提供修改同義詞(Synonym)的命令。如果您要修改某一同義詞(Synonym)的話,您要先把它刪除掉,之后再重新建立這個同義詞(Synonym)。
      15.12 刪除同義詞(Synonym)
      如果經過了一段時間,您發現同義詞(Synonym)s已經沒什么用處了,您就可以使用如下的DDL語句(例15-53)將它刪除掉。不過在這之前您可能得先使用如下的SQL*PLUS命令(例15-52)重新注冊到SCOTT用戶下。
      例15-52
      SQL> CONNECT SCOTT/TIGER
      例15-52結果
      已連接。
      例15-53
      SQL> DROP SYNONYM s;
      例15-53結果
      同義詞已丟棄。
      雖然例15-53結果已經顯示:“同義詞已丟棄。”,但是為了謹慎起見,您還是應該使用如下的查尋語句(例15-54)查看一下數據字典user_objects。
      例15-54
      SQL> SELECT object_name, object_type, created, status
      2 FROM user_objects
      3 WHERE object_type LIKE 'SYN%';
      例15-54結果
      未選定行
      或者您應該使用如下的查尋語句(例15-55)查看一下數據字典user_ synonyms。
      例15-55
      SQL> SELECT synonym_name, table_owner, table_name
      2 FROM user_synonyms;
      例15-55結果
      未選定行
      例15-54和例15-55顯示的結果進一步證實了您已經將同義詞(Synonym)s成功地從系統中刪除掉。
      刪除同義詞(Synonym)語句的格式如下:
      DROP SYNONYM 同義詞的名字;

      posted @ 2010-12-31 16:14  chinaifne  閱讀(2557)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 欧洲lv尺码大精品久久久| 亚洲国产精品第一二三区| 国产乱子伦视频在线播放| 精品国产乱码久久久久久婷婷| 精品无码国产自产拍在线观看蜜| 欧洲亚洲国内老熟女超碰| 欧美老少配性行为| 久久这里只精品国产2| 亚洲嫩模一区二区三区| 免费无码午夜理论电影| 日本道精品一区二区三区| 朔州市| 免费黄色大全一区二区三区| 干老熟女干老穴干老女人| 喷潮出白浆视频在线观看| 亚洲欧美在线观看品| 国产老熟女无套内射不卡| 亚洲国产成人资源在线| 久久精品一区二区三区中文字幕| 亚洲自拍偷拍福利小视频| 九九热精品免费在线视频| 18禁黄网站免费| 亚洲精品韩国一区二区| 国产亚洲无线码一区二区| 一本本月无码-| 国产午夜福利精品视频| 国产高清无遮挡内容丰富| 人妻日韩精品中文字幕| 饥渴少妇高潮正在播放| 色国产视频| 久久精品国产一区二区蜜芽| 日本高清日本在线免费| 亚洲精品一二三四区| 亚洲AV无码秘?蜜桃蘑菇| 韩国18禁啪啪无遮挡免费| 五月婷婷久久中文字幕| 亚洲成人高清av在线| 饥渴的熟妇张开腿呻吟视频| 日韩一区二区三区精彩视频| 日韩在线成年视频人网站观看| 欧美黑人粗暴多交高潮水最多|