SQL基礎--同義詞


同義詞的概念:

   同義詞是Oracle對象的別名,使用同義詞訪問相同的對象

    可以為表、視圖、存儲過程、函數或另一同義詞等對象創建同義詞

    方便訪問其它用戶的對象,隱藏了對象的身份

    縮短對象名字的長度

 

同義詞創建語法:

  CREATE [PUBLIC] SYNONYM synonym_name  FOR  object;

 

創建和刪除同義詞的權限:

  •    CREATE ANY SYNONYM
  •        CREATE PUBLIC SYNONYM
  •    DROP PUBLIC SYNONYM
  •         DROP ANY SYNONYM

 

創建同義詞舉例:

SQL> conn / as sysdba
已連接。

SQL> grant create public synonym to scott;

授權成功。

SQL> grant create any synonym to scott;

授權成功。

SQL> conn scott/tiger
已連接。
  
SQL> create public synonym mydept for dept;    ##創建公有同義詞,其它用戶也可以訪問

同義詞已創建。

SQL> create  synonym mydept for dept;      ##創建私有同義詞,只有Scott才可以訪問,與公共同義詞同名,並沒有報錯 
同義詞已創建。

 

 

刪除同義詞:

 

SQL> drop public synonym mydept;

同義詞已刪除。

SQL> select * from mydept;   ##刪除共有同義詞,私有的還在

    DEPTNO DNAME      LOC
---------- -------------- -------------
    10 ACCOUNTING      NEW YORK
    20 RESEARCH      DALLAS
    30 SALES      CHICAGO
    40 OPERATIONS      BOSTON

SQL> drop synonym mydept;
同義詞已刪除。
SQL
> select * from mydept; select * from mydept *1 行出現錯誤: ORA-00942: 表或視圖不存在

 

 

 

 

查看同義詞視圖:

SQL> select * from user_synonyms;

SYNONYM_NAME               TABLE_OWNER              TABLE_NAME
------------------------------ ------------------------------ ------------------------------
DB_LINK
------------------------------------------------------------------------------------------------------------------------
MYDEPT                   SCOTT                  DEPT

SQL> conn / as sysdba
已連接。

SQL> SELECT synonym_name,table_owner,table_name FROM dba_synonyms  WHERE table_name = 'DEPT';

SYNONYM_NAME               TABLE_OWNER              TABLE_NAME
------------------------------ ------------------------------ ------------------------------
MYDEPT                   SCOTT                      DEPT
MYDEPT                   SCOTT                       DEPT

 注意:創建的公共同義詞沒有出現在user_synonyms視圖中

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM