MySQL_MySQL视图(重点)
视图引入:
有俩张数据库的表,一张是用户信息内容表,一张是用户操作的权限表。当一个用户在登录了以后,系统需要提供俩张数据库表中的对应的内容。我要实现获取这俩张表时间有对应关系的数据内容,我就必须分别查询出用户,然后在去权限表中查询出来对应的权限,如果有一种方法可以实现不用分开查询,我直接可以获取用户表和权限表合起来的这一张大表,然后我在去查询里面的内容。这样就方便多了。但是呢这一张大表还不影响我俩张小表。如果有这样的操作,那么久更好了。为了解决类似问题。我们就可以使用——视图。
视图的概述
视图,一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。也就是说保存的是多个表的组合结果。但是这一个组合结果是一个临时的存储,这一些数据来源于子表,这一个组合表在数据库中不存储在实际的存储。但是可以使用。MySQL在版本5.0以后就开始提供视图。
视图的使用场景
1.多个地方用到同样的查询结果,,如用户表和权限表的内容。
2.该查询结果使用的sql语句较复杂。
视图的使用好处
1.重用sql语句
2.简化复杂的sql操作,不必知道它的查询细节(有点类似于面向对象)
3. 保护数据,提高安全性
视图的一个基本使用
1.创建俩个相互关联的数据库表
用户表: user
权限表:roles
建立俩张表视图:
视图结果:(以用户表为准)
创建视图使用sql
方法1:使用SQL直接创建
方法2:使用可视化工具自带的建立视图方法(navicat)
视图的查询以及使用