首页 > 代码库 > oracle 视图
oracle 视图
--视图
--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 视图