sqlsever视图的学习

为什么需要视图:
总结:
简化查询
避免了代码的冗余
笔迷那了属性大量重复的sql语句
什么是视图:
视图从代码上来看是select语句
视图从逻辑上来看是临时表
视图格式
create view 视图名字
as
—-select前面不能写begin
select 语句
—-select后面不能写end
视图优点:
简化查询
增加数据的保密性

    视图的缺点:
            增加了数据库的维护的成本
            比如  如果原始表删除了列 而视图还是原来的 ,运行时就会报错
            视图只是简化了查询,并没有加快查询的速度,这也是视图使用不足的地方


    注意的问题:
       创建视图的select语句必须的为所有的计算列指定别名         
  -----error
           create view v$_a
           as
               select avg(sal) from emp;  
           ----ok
           create view v$_a
           as
               select avg(sal) as "avg_sal" from emp;
    视图不是物理表,是虚拟表
    不建议通过视图更新视图所依附的原始表的数据或者结果       

总结:通常用视图来查询,而不是操作修改原始表

实例:求出平均工资最高的部门的编号和部门的平均工资

select *
from (
    select deptno,AVG(sal) "avg_sal"
    from emp
    group by deptno
)"T"
where "T".avg_sal=(
select MAX("E"."avg_sal") from( select deptno,AVG(sal) "avg_sal"
from emp
group by deptno
)"E"
)

等效于下面的


create view v$_emp_1  //创建视图
as
    select deptno,AVG(sal) "avg_sal"
    from emp
    group by deptno

    select *from v$_emp_1
    where avg_sal=(select MAX(avg_sal) from v$_emp_1)

select deptno,AVG(sal) “avg_sal”
from emp
group by deptno
用视图v$_emp_1 来代替

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值