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`;  //使用时把视图当做一般的表即可

原文地址:https://www.cnblogs.com/xiaoliwang/p/8896006.html