zoukankan      html  css  js  c++  java
  • Mysql 视图使用

    视图

      简单理解视图就是一张虚拟表,可以简化一些复杂查询语句 举个简单的例子来理解视图

    视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询;不包含任何列或数据。使用视图可以简化复杂的sql操作,隐藏具体的细节,保护数据;
    视图创建后,可以使用与表相同的方式利用它们。 视图不能被索引,也不能有关联的触发器或默认值,如果视图本身内有order by 则对视图再次order by将被覆盖。 创建视图:create view XXX as XXXXXXXXXXXXXX; 对于某些视图比如未使用联结子查询分组聚集函数Distinct Union等,是可以对其更新的,对视图的更新将对基表进行更新;
    但是视图主要用于简化检索,保护数据,并不用于更新,而且大部分视图都不可以更新。

      当前我有两张表

        学生表 s_student

     

        分数表 s_scroll

    现在我想获得学生所有信息,sql语句

    SELECT a.id,name,age,math,chinese from `s_student` as a LEFT JOIN `s_scroll` as b ON a.id = b.id order by b.science limit 3; 

    使用视图

      创建视图   

    CREATE OR REPLACE VIEW get_student_scroll (id,name,age,math,chinese,english,science) //视图名字,前缀应该与普通表保持一致 (字段)
    as SELECT
    a.id,a.name,a.age,
    b.math,b.chinese,b.english,b.science
    FROM
    (`s_student` as a LEFT JOIN `s_scroll` as b ON a.id = b.id)
    order by b.science
    limit 3;

      使用视图

    select * from `get_student_scroll`;  //使用时把视图当做一般的表即可

  • 相关阅读:
    Flask---框架入门
    续--Flask, Django
    测试开发中Django和Flask框架
    oracle数据库的存储原理
    Oracle 存储过程—为数传递变量
    Oracle scope中 spfile、memory、both 的区别
    数据库性能衡量指标
    raid卷性能测试
    HTTP POST请求报文格式分析与Java实现文件上传
    使用Navicat 导入导出Mysql数据库
  • 原文地址:https://www.cnblogs.com/xiaoliwang/p/8896006.html
Copyright © 2011-2022 走看看