码迷,mamicode.com
首页 > 数据库 > 详细

oracle 视图

时间:2017-04-08 12:56:17      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:安全性   修改   select   问题   table   var   int   view   insert   

--视图
--1 提供了另一钟级别的表安全性
--2 隐藏数据的复杂性
--3 简化用户的sql命令
--4 隔离基表结构的改变
--5 通话重命名列 从另一个角度提供数据


--创建表
drop table person;
create table person(
pid integer primary key,
pname varchar2(10),
psex varchar2(5)
);

insert into person values(1,‘张三‘,‘男‘);
insert into person values(2,‘张2‘,‘女‘);
insert into person values(3,‘张3‘,‘男‘);
insert into person values(4,‘张4‘,‘女‘);
insert into person values(5,‘张5‘,‘男‘);
insert into person values(6,‘张6‘,‘女‘);
insert into person values(7,‘张7‘,‘男‘);
select *from person where psex=‘男‘ and pname=‘张三‘ and 1=1;
select *from person;

--创建视图
--视图:解决查询语句过长的问题
--语法
grant create view to scott;
create [or replace][force|noforce] view [schema.] 视图名
drop view psql1;
create view psql1 as select *from person where psex=‘男‘;

select *from psql1 ;


--修改视图
update psql1 set pname=‘李四‘ where pname=‘张三‘;

 

--创建一个只读视图

create view psql2 as select *from person where psex=‘男‘ with read only;

--修改视图 --报错不能对只读视图进行修改
update psql2 set pname=‘李2‘ where pname=‘张2‘;


--创建第二个视图 不加约束
create view psql3 as select *from person where psex=‘女‘;

select *from psql3;

--创建第二个视图 加约束 with check option
create view psql4 as select *from person where psex=‘女‘ with check option ;
select *from psql4;
insert into psql4 values(10,‘张11‘,‘男‘);--违反约束 psex=‘女

--force 强制为一个不存在的表创建视图

create force view v3 as select *from table3;
--不存在 有error
select *from v3;

 --查看视图

oracle 视图

标签:安全性   修改   select   问题   table   var   int   view   insert   

原文地址:http://www.cnblogs.com/KOAN-lcd/p/6681163.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!