zoukankan      html  css  js  c++  java
  • 23 SQL语言——视图 VIEW

    理解视图

    对于一个重要的表,比如支付宝的用户表,它包含了账户余额,但是我并不希望下级开发人员能看到这个用户的余数字段,怎么办呢?

    我就做了一个另一个表,只给出指定的几个字段,下级开发人员对这个表的增删改依然能作用到我原有的表上。

    完美!

    我做的这另一个表,就叫视图。

    视图特点

    1. 保护真实表,隐藏重要字段的数据,保护数据
    2. 在视图中的操作会映射到真实表中
    3. 可以手动开启只读模式

    注意:视图的创建需要dba权限。也就是说,只有管理员才能创建视图。

    视图的创建和删除

    注意:有dba权限的用户才能创建视图

    创建

    --创建一个表tb
    create table tb(
    c1 varchar(100),
    c2 varchar(100),
    c3 varchar(100),
    c4 varchar(100)
    )
    select * from tb
    
    insert into tb values('值1','值2','值3','值4')
    --创建一个给定字段的视图tb_v1
    
    create view tb_v1 as select c1,c2,c4 from tb;
    
    select * from tb_v1
           --可对给定字段正常增删改查
    
    insert into tb_v1 values('值1','值2','值4')
    
    select * from tb_v1;
    
    select * from tb
            --但不能对视图没有的字段(原表中有单没给视图的字段)进行操作
    
    update tb_v1 set c3 = '新值3' --报错
    
    --创建一个只读视图tb_v2
    
    create view tb_v2 as select c1,c2,c3 from tb with read only;
           --可查
    
    select * from tb_v2
           --不可增删改
    insert into tb_v2 values('值1','值2','值3')
    delete from tb_v2
    
    update tb_v2 set c1 = '新值1'
    

      

    删除

    drop view 视图名

  • 相关阅读:
    Android ADB 基本命令
    Android Studio修改包名
    Android开发之SurfaceView
    Android呼吸灯效果实现
    Android xml 绘制图形
    设计模式--代理模式C++实现
    设计模式--建造者模式C++实现
    设计模式--模板方法模式C++实现
    设计模式--抽象工厂模式C++实现
    设计模式---工厂方法C++实现
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/12307619.html
Copyright © 2011-2022 走看看