oracle视图的同义词,oracle 视图、同义词、序列
/**********************************************************
視圖
**********************************************************/
// 創建視圖
CREATE OR REPLACE VIEW myview
AS
SELECT * FROM books;
//授權
GRANT create view to scott;
// 使用視圖插入數據
INSERT INTO myview(books_id) values('0008');
// 創建視圖
CREATE OR REPLACE VIEW myview
AS
SELECT * FROM books where price>30;
// 當插入price<30的數據的時候后,再select視圖,發現數據沒有增加,會讓用戶產生模糊,
// 為防止這種情況,可以如下修改視圖
CREATE OR REPLACE VIEW myview
AS
SELECT * FROM books where price>30
WITH CHECK OPTION
// 創建視圖
CREATE OR REPLACE VIEW deptview
AS
SELECT e.eid,e.ename,e.sex,d.id,d.name FROM e JOIN d ON e.id=d.id;
// 當組成視圖的基表是兩個或兩個以上的時候,只能更新或插入一個表,可以用替代觸發器完成此功能
// 只讀視圖,不能更新
CREATE OR REPLACE VIEW onlyreadview
AS
SELECT e.eid,e.ename FROM e
WITH READ ONLY;
// 當視圖中帶有 group by, avg,sum等聚合函數,distinct, 這時的視圖也是不能更新的
// 查看視圖
desc user_views // 當前用戶
desc all_views
desc dba_views
/**********************************************************
同義詞
利用同義詞可以很方便的操縱不同用戶模式下的對象
分兩種
公共同義詞 dba建立的
私有同義詞
**********************************************************/
// 當前用戶
select user from dual;
GRANT SELECT ON dept TO lee; -- 授權
conn lee/lee;
select * from scott.dept;
// 創建同義詞 在lee用戶下
CREATE SYNONYM dept FOR scott.dept;
// 授權
conn sys/admin as syadba;
grant create synonym to lee;
// 刪除同義詞
drop synonym dept;
// 創建公共同義詞
create public synonym dept for scott.dept;
desc dba_synonyms;
desc user_synonyms;
/**********************************************************
創建序列
**********************************************************/
CREATE SEQUENCE myseq
START WITH 1
INCREMENT BY 1
ORDER
NOCYCLE; -- 性能不好
//
grant create sequence to scott;
select myseq.NEXTVAL FROM dual;
select myseq.CURRVAL FROM dual;
CREATE TABLE aut
(
a number,
b varchar2(10)
);
INSERT INTO aut VALUES(myseq.NEXTVAL,'dfd');
desc dba_sequence;
ALTER sequence myseq
INCREMENT BY 3;
總結
以上是生活随笔為你收集整理的oracle视图的同义词,oracle 视图、同义词、序列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle导出导入emp,oracle
- 下一篇: linux ruby gem 安装目录,