zoukankan      html  css  js  c++  java
  • MySQL视图(view)

    摘自:https://www.cnblogs.com/cshaptx4869/p/10481749.html

    一、基本概念

    视图是一个虚拟表,是sql的查询结果,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图[insert update delete ] ; 创建视图需要create view 权限,并且对于查询涉及的列有select权限;使用create or replace 或者 alter修改视图,那么还需要改视图的drop权限。

    • 对于复杂的查询,在多次使用后,维护是一件非常麻烦的事情
    • 解决:定义视图
    • 视图本质就是对查询的一个封装

     

    大数据分表时可以用到

    比如,表的行数超过200万行时,就会变慢,

    可以把一张的表的数据拆成4张表来存放.

    News表

    Newsid, 1,2,3,4

    News1,news2,news3,news4表

     

    把一张表的数据分散到4张表里,分散的方法很多,

    最常用可以用id取模来计算.

    Id%4+1 = [1,2,3,4]

    比如 $_GET['id'] = 17,

    17%4 + 1 = 2,  $tableName = 'news'.'2'

    Select * from news2 where id = 17;

     

    还可以用视图4张表形成一张视图

    Create view news as  select from n1 union select from n2 union.........

     

    二、视图的基本使用

            如何创建视图(基本语法):

      create view  视图名  as  select 字段名 from 表名;

       

      Mysql视图的定义在from关键字后面不能包含子查询

            修改了视图,对基表数据有影响

       

            修改了基表,对视图也有影响

     

            如何修改视图

        基本语法是

        alter view 视图名 as select 语句

        alter view 视图名 as  select 视图;

       

            显示视图创建情况

        show create view 视图名;

            查看视图

        Show tables;

        Show table status [ from db_name ] [ like ‘pattern’ ]

        SELECT * FROM information_schema.views where table_name = 'my_view';

            删除视图

        drop view 视图名[,视图名…];

            重命名视图

        Rename table 视图名 to 新视图名;;

     

     

    三、具体的创建视图的方式:

            create algorithm=temptable view view1 as select goods_id,cat_id,shop_price,goods_name from ecs_goods order by cat_id, shop_price desc;

            create view view2 as select * from view1 group by view1.cat_id;

      这里说明一下关于视图(存储的都是语句)使用到的算法(视图放哪了):

       

      Undefined:未定义,自动,让系统帮你选.

       

      

       

    四、使用视图的好处

       

     

  • 相关阅读:
    ES6展开运算符的10个用法
    用react脚手架新建项目
    第六章 组件 56 组件-组件中的data
    第六章 组件 55 组件-使用components定义私有组件
    第六章 组件 54 组件-创建组件的方式3
    第六章 组件 53 组件-创建组件的方式2
    第六章 组件 52 组件-创建组件的方式1
    第六章 组件 51 组件化和模块化的区别以及组件的定义方式
    第五章 动画 50 动画-transition-group中appear和tag属性的作用
    第五章 动画 49 动画-实现列表删除和删除时候的动画效果
  • 原文地址:https://www.cnblogs.com/LiuYanYGZ/p/12237216.html
Copyright © 2011-2022 走看看