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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值