SQL视图

1.视图:

    从代码上是select语句,逻辑上可当作一个虚拟表。用于避免代码冗余

2.格式:

 create view 视图名
    as

--select前面不能添加begin
    select 

--select前面不能添加end

3.优点:
    简化查询

    增加数据的保密性

    create view v$_emp_2
        as

        select  empno,ename,job,mgr,comm,deptno from emp     //将入职时间,和工资省略

        select * from v$_emp_2    //注意:用insert into时,要确保“入职日期”,"工资"两字段允许null,不建议通过视图操作

4.缺点:增加维护成本,因为当主表删除时,视频并不会自动删除。

5.注意:创建视图的select语句必须为所有的计算列指定别名

create view v$_emp_3
as

select  avg(sal), deptno from emp group by deptno    ----error创建视图或函数失败,因为没有为列 1 指定列名。


//平均工资最高的部门编号及平均工资

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

//创建视图
create view v$_emp_1
as
select  avg(sal) "avg_sal", deptno from emp group by deptno
//应用
select * from v$_emp_1
where avg_sal=
(select max(avg_sal) from v$_emp_1)

你可能感兴趣的:(数据库)