• 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:未定义,系统帮你选择

     

    如有错误 欢迎指正

    打破当前不满足的方式就是当下默默努力!!!
  • 相关阅读:
    BootstrapBlazor 组件库介绍
    BootstrapBlazor 组件库使用体验---Table篇
    【转载】Bootstrap Blazor 组件介绍 Table (一)自动生成列功能介绍
    【转载】Bootstrap Blazor 组件介绍 Table (二)自定义模板列功能介绍
    【转载】Bootstrap Blazor 组件介绍 Table (三)列数据格式功能介绍
    使用acme.sh从Let's Encrypt申请SSL证书
    Docker一些基本操作
    Nginx配置https以及配置说明
    vi操作
    CentOS 7下安装Docker
  • 原文地址:https://www.cnblogs.com/Pang-Jie/p/10917185.html
Copyright © 2020-2023  润新知