zoukankan      html  css  js  c++  java
  • mysql--浅谈视图1

    这是对自己学习燕十八老师mysql教程的总结,非常感谢燕十八老师。

    依赖软件:mysql5.6

    系统环境:win

    视图(view)

    什么是视图?

    答:视图是表通过某种运算得到的一个投影,占有一定空间的虚拟表

    视图的作用

    1、简化查询

    2、权限管理

    3、数据量大时利用视图进行分表

    视图的创建

    # 语法
    create (algorithm=marge/temptable/undefined) view 视图名 as select语句
    # 示例
    create view test as 
    select goods_id,cat_id,shop_price,goods_name
    from goods;

    删除视图

    # 语法
    drop view 视图名
    
    # 示例
    drop view test;

    视图的修改

    # 语法
    alter view 视图名 as select语句
    
    
    # 示例
    alter view test as 
    select goods_id,cat_id,goods_name
    from goods;

    视图与表的关系

    视图是表的查询结果,自然表的数据改变了,影响视图的结果

    反之

    视图的数据改变了也会影响表的数据,但是视图并不是一定能被修改的

    修改视图的条件

    视图的数据必须和表的数据一一对应,就像数学中函数的映射

    视图中的algorith

    1、merge:  当引用视图时,引用视图的语句和定义视图的语句合并产生作用

    # 示例
    # 创建视图的语句:
    create algorithm=merge view g2 as 
    select goods_id,cat_id,goods_name,shop_price 
    from goods where shop_price>2000
    
    # 查询视图的语句:
    select * from g2  where shop_price < 3000;
    
    # 最终执行的语句:
    select goods_id,cat_id,goods_name,shop_price 
    from goods 
    where shop_price > 2000 and shop_price < 3000

    2、temptable:  当应用视图时,更加视图的创建语句建立一张临时表

    # 示例
    # 创建视图
    create algorithm=temptable view g2 as 
    select goods_id,cat_id,goods_name,shop_price from goods 
    where shop_price > 2000
    
    #查询视图的语句:
    select * from g2  where shop_price < 3000;
    
    # 最终执行的2句话: 取数据并放在临时表,然后去查临时表.
    Select  goods_id,cat_id,goods_name,shop_price from goods where shop_price > 2000;
    ========> temptable
    
    # 再次查临时表
    Select * from temptable where shop_price< 3000

    3、undefined:未定义,系统帮你选择

     

    如有错误 欢迎指正

    打破当前不满足的方式就是当下默默努力!!!
  • 相关阅读:
    EF Core 小技巧:迁移已经应用到数据库,如何进行迁移回退操作?
    ABP Framework 5.0 RC.1 新特性和变更说明
    OI迷惑行为大赏【目前较少,持续更新中】
    【比赛日志】APIO2020(2020.08.15)
    【好题】【IPSC2003】 Got Root? 无向图删边游戏
    [HNOI2019] 校园旅行 —— 一个边界数据
    【题解】JOISC 2020 Day 3 stray
    ExtJS学习:MVC模式案例(四) 林枫705
    ExtJS学习:MVC模式案例(三) 林枫705
    ExtJS学习:MVC模式案例(二) 林枫705
  • 原文地址:https://www.cnblogs.com/Pang-Jie/p/10917185.html
Copyright © 2011-2022 走看看