第四章 视图

1 视图的定义

1 视图是一种虚拟的表,是一个或者多个表导出来的表
2 数据库中只存放视图的定义,并没有存放视图的数据,这些数据存放在原表中
3 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。

2 视图作用及缺点

作用
(1)、方便用户操作
要求所见即所需,无需添加额外的查询条件,直接查看
(2)、增加数据的安全性
通过视图,用户只能查看或修改指定的数据。
(3)、提高表的独立逻辑性
原有数据表结构的变化,不会影响视图,如果修改原有列,则只需修改视图即可。

缺点
 1 能相对较差,简单的查询也会变得稍显复杂
 2 修改不方便,特变是复杂的聚合视图基本无法修改

3 视图应用场景

权限控制的时候,不希望用户访问表中某些含敏感信息的列,比如salary...
关键信息来源于多个复杂关联表,可以创建视图提取我们需要的信息,简化操作;

4 视图基本操作

--  视图的基本操作 
/*#########创建单表视图#########*/
 create view v1 as select * from product ;
 create view v2 as select p_name ,P_price from product;
 create view v3 (a,b) as select p_name ,P_price from product;
-- 创建多表视图
create view v4 as select e.e_name,d.d_name from emp e,dept d where e.d_id = d.d_id;
 --  查询视图中的数据
 select * from v1 ;
 
 
/*#########查看视图#########*/
desc v4;	
 -- 查看视图的基本信息
 show table status like 'v4';
 
 -- 查看视图的详细信息
 show create view v4;
  
/*#########修改视图#########*/
create or replace view v1 as select e_name from  emp;

-- alter 语句来修改视图
alter view v1 as select d_name from dept;

-- 在视图中对原表数据 update insert delete 时 原表数据都会更新
--  用update来更新 
 update v1 set d_name='测试2' where d_name='测试'

--  在原来的表中插入一条数据视图也会变化
insert dept values(null,'运维',33);

--   在视图删除数据
delete from v1 where  d_name='运维';

/*#########删除视图#########*/
drop view v1;

 

猜你喜欢

转载自blog.csdn.net/yipianfeng_ye/article/details/90636031
今日推荐