视图

※ 视图创建

所谓视图就是提取一张或者多张表的数据生成一个映射,管理视图可以同样达到操作原表的效果,方便数据的管理以及安全操作。

※ 创建基本语法:

    create [or replace] [force] view  view_name
    // or replace覆盖已有视图   
    // force强制性视图view 
    as
    select ...
    [where condition]
    [with check option|with read only]

例:create view s_e
    as
    select id,last_name
    from s_emp;

    select * view s_e;

    如果当前用户没有创建视图的权限
    管理员:grant create view to 用户名;

※ 1 .with check option:加上该关键词表示对view进行dml操作的时候,只能操作select语句中where条件限制的内容,如果修改后的结果在view中将不再看到,那么这种操作不允许。

例:create view s_e2
    as
    select id,last_name
    from s_emp
    where id<20
    with check option;

    select * from s_e2;

    update s_e2 set id=28
    where id=19;//报错,id<20

※ 2 .别名:如果给列起了别名,视图中的列就是别名,如果没有起别名,视图中的名字就是查询的结果默认名字。

※ 3 .with read only:建立了视图在不是只读的情况下,可以对视图做增删改查操作会影响到原来的表,对原表操作也会影响视图。

※ 4 .视图更改信息,只能更改单表信息

    update s_e set last_name='briup'
    where id=2;
    commit;

    create view s_e1
    as 
    select avg(salary) avg,dept_id
    from s_emp
    group by dept_id;

    update s_e1 set avg=1000
    where dept_id=43;//报错,平均工资包含多列信息

※ 删除视图

drop view view_name;

※ 使用视图的好处:

1.信息隐藏
比如s_emp表中有工资,可以创建视图,隐藏工资信息。(可以配合权限,让某个用户只能查看视图,不能查看表。)
2.使复杂查询变得简单。

※ 视图分为:

1.简单视图:
1不涉及多张表,
2.不涉及组函数,
3.不涉及分组,
4.可以执行DML操作
2.复杂视图
与简单视图相反。

       create view s_e2
        as
        select s.id,s.last_name,d.id ids,d.name
        from s_emp s,s_dept d
        where s.dept_id=d.id;

        column name format a10;
        select * from s_e2;

        update s_e2 set id=29
        where id=27;
        commit;//只改单表单列的值是可以的
        select id,last_name
        from s_emp;//对原表也更改

        insert into s_e2 values(30,'huzl',60,60,'web');
        //报错,不允许用过联接视图修改多个基表


        select * from s_e2;
        delect from s_e2 where id=25;
        commit;
        //只会删除id=25的员工信息,不会删除部门表信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值