Oracle视图view
来源:互联网 发布:python电影推荐系统 编辑:程序博客网 时间:2024/06/05 19:56
视图view
1.隐藏表中的重要数据
2.代替一些比较长的sql语句
视图分为俩类:
简单视图:
视图所代表的sql中如果没有group by语句,没有组函数,查询的只有一张表,那么这样的视图就是简单视图.
复杂视图
视图所代表的sql中如果有group by语句,或者有组函数,或者查询的是多张表,那么这样的视图就是复杂视图.
简单视图和复杂视图的区别:
通过简单视图可以修改原来表中的数据,通过复杂视图是不能修改原来的数据的。
二、视图实例
创建视图的格式:
create or replace view 视图名字
as
sql语句
删除视图的格式
drop view 视图名字;
测试表:
create table t_user(
id number constraint user_id_pk primary key,
name varchar2(100),
salary number
);
drop table t_user;
插入数据:
insert into t_user(id,name,salary)
select id,last_name,salary
from s_emp;
//创建视图
create or replace view v_test
as
select *
from t_user
where id > 10;
//查看视图内容
select *
from v_test;
//可以通过*简单视图*对原来的表进行数据的删除/更新/插入
delete from v_test where id=16;
update v_test set name = 'zhangsan' where id = 20;
with read only语句
特点:只能通过视图进行查询数据,不能修改
例如:
create or replace view v_test
as
select *
from t_user
where id > 10
with read only;
这个视图v_test将来只能查询,不能进行修改
with check option语句
特点:通过视图进行的修改 那么也必须可以通过这个视图能够显示出来,要不然就操作失败
例如:
//测试用的表及其数据
drop table t_user;
create table t_user(
id number constraint user_id_pk primary key,
name varchar2(100),
salary number
);
insert into t_user values(1,'tom',1000);
insert into t_user values(2,'tom2',2000);
创建视图:
create or replace view v_test
as
select id,name,salary
from t_user
where id=2
with check option;
//查询视图中的数据
select * from v_test;
//插入报错 因为这个操作通过视图显示不出来
insert into v_test values(3,'tom3',3000);
//更新失败 因为这个操作通过视图显示不出来
update v_test
set name='lily'
where id=1;
//更新成功 因为这个操作通过视图可以显示出来
update v_test
set name='lily'
where id=2;
四、复杂视图
例如:
create or replace view v_test
as
select avg(salary)
from t_user
复杂视图只能用来查询,不能修改
一、概述
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。 就是提取一张或者多张表的数据生成一个映射,操作视图可以达到操作原表的效果,方便数据的管理以及安全操作。
视图的作用: 1.隐藏表中的重要数据
2.代替一些比较长的sql语句
视图分为俩类:
简单视图:
视图所代表的sql中如果没有group by语句,没有组函数,查询的只有一张表,那么这样的视图就是简单视图.
复杂视图
视图所代表的sql中如果有group by语句,或者有组函数,或者查询的是多张表,那么这样的视图就是复杂视图.
简单视图和复杂视图的区别:
通过简单视图可以修改原来表中的数据,通过复杂视图是不能修改原来的数据的。
二、视图实例
创建视图的格式:
create or replace view 视图名字
as
sql语句
删除视图的格式
drop view 视图名字;
测试表:
create table t_user(
id number constraint user_id_pk primary key,
name varchar2(100),
salary number
);
drop table t_user;
插入数据:
insert into t_user(id,name,salary)
select id,last_name,salary
from s_emp;
//创建视图
create or replace view v_test
as
select *
from t_user
where id > 10;
//查看视图内容
select *
from v_test;
//可以通过*简单视图*对原来的表进行数据的删除/更新/插入
delete from v_test where id=16;
update v_test set name = 'zhangsan' where id = 20;
insert into v_test(id,name,salary) values(28,'tom1',3000);
如下图所示,我们对视图进行插入操作,但是能够在原表中查询到插入的结果
with read only语句
特点:只能通过视图进行查询数据,不能修改
例如:
create or replace view v_test
as
select *
from t_user
where id > 10
with read only;
这个视图v_test将来只能查询,不能进行修改
with check option语句
特点:通过视图进行的修改 那么也必须可以通过这个视图能够显示出来,要不然就操作失败
例如:
//测试用的表及其数据
drop table t_user;
create table t_user(
id number constraint user_id_pk primary key,
name varchar2(100),
salary number
);
insert into t_user values(1,'tom',1000);
insert into t_user values(2,'tom2',2000);
创建视图:
create or replace view v_test
as
select id,name,salary
from t_user
where id=2
with check option;
//查询视图中的数据
select * from v_test;
//插入报错 因为这个操作通过视图显示不出来
insert into v_test values(3,'tom3',3000);
//更新失败 因为这个操作通过视图显示不出来
update v_test
set name='lily'
where id=1;
//更新成功 因为这个操作通过视图可以显示出来
update v_test
set name='lily'
where id=2;
四、复杂视图
例如:
create or replace view v_test
as
select avg(salary)
from t_user
复杂视图只能用来查询,不能修改
1 0
- Oracle视图view
- Oracle 视图(View)
- ORACLE VIEW视图
- Oracle 视图(View)
- oracle view 视图
- Oracle 视图(View)
- oracle view视图update
- ORACLE 视图(VIEW)
- oracle 创建视图view
- Oracle视图view
- Oracle 视图(View)
- oracle视图view
- Oracle视图(View)demo
- Oracle 视图(View) 说明
- oracle物化视图(materialized view)
- Oracle 视图(View) 说明
- Oracle 视图(View) 说明
- Oracle 视图(View)说明
- Java中equals和==的区别
- CSS中的固定布局和相对布局
- 关于IE兼容,发布后变成了IE9(浏览器IE9兼容模式,文档IE7标准模式)
- CSS Positioning(定位)
- 枚举类
- Oracle视图view
- Ubuntu学习笔记一
- POJ - 2584(二分匹配入门)
- codeforces723AThe New Year: Meeting Friends+水题
- 矩阵快速幂入门 + 求Fibonacci数列
- iOS全局返回按钮定制问题解决方案
- 操作系统(8)--并发性学习笔记
- mysql使用问题
- codeforces#375(div.2)723D - Lakes in Berland dfs+bfs