同義詞,是表、索引和視圖等模式對象的一個別名。與視圖等一樣,同義詞並不占用任何實際的存儲空間,只在Oracle的數據字典中保存其定義的描述。在使用同義詞時,Oracle會將其翻譯為對應的對象名稱。
Oracle中的同義詞主要分為如下兩類:
1. 公有同義詞
在數據庫中所有用戶都可以使用
2. 私有同義詞
由創建它的用戶私人擁有。不過,用戶可以控制其他用戶是否有權使用自己的同義詞。
創建同義詞的語法如下:
CREATE [PUBLIC] SYNONYM synonym_name FOR schema_object;
例1:
賦予用戶創建同義詞權限:
GRANT CREATE PUBLIC SYNONYM TO siege;
然後創建同義詞:
CREATE PUBLIC SYNONYM public_stu_syn FOR student;
刪除同義詞使用Drop語句即可。若要刪除公有同義詞,則需要有相關權限:
GRANT DROP PUBLIC SYNONYM TO siege;
此時在刪除公有同義詞:
DROP PUBLIC SYNONYM public_stu_syn;
查看同義詞:
SELECT * FROM user_synonyms WHERE synonym_name='PUBLIC_STU_SYN'
若創建的是公有同義詞,則其定義存儲在dba_synonyms中,查詢時需要具有相關權限。