Mysql视图使用总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql视图使用总结相关的知识,希望对你有一定的参考价值。

视图View使用总结:

视图可以看作为“虚拟表”,因为它返回的结果集格式与实体数据表返回的数据集格式类似,并且引用视图的方式与引用数据表的方式相同。每次查询使用视图时,DBMS会动态生成视图结果集所需要的逻辑合并到从基表数据生成的结果集逻辑中。(技术讨论群:276592700(新))

 

l   什么是视图?

l   视图的特点?

l   视图的类型?

l   视图的使用?

 

一、什么是视图

视图是一个从一张或几张数据表或视图中导出的虚拟表,它的作用类似于对数据表进行筛选,必须使用SQL语句中的SELECT语句实现构成。在定义视图时,只是把视图的定义存放在数据库,并不保存视图的数据,直到用户使用视图时才进行数据的查询并返回操作,当需要从不同的服务器中获得数据时,使用视图可以很好的将结构相同的数据组织并返回。

 

二、视图的特点

视图的主要特点如下:

1、简化数据的操作

用户可以将经常使用的连接,联合查询、及选择查询定义为视图,这样每次调用的时候,只需要简单的调用视图即可。另外,视图可以隐藏表表间的复杂关系。

2、可作为安全机制

视图可以用来做安全机制。用户可以通过设置视图,使特定的用户只能查看或修改他们权限内的数据,其它的数据库或表不能进行操作。视图的安全性可以防止未授权的用户查看或操作特定的列或行,通过在你表中设置一个用户的标志来建立视图,使用户只能查看或操作标志自己标志的列或行,从而保证数据的安全性。

3、合并及分割数据

有的时候,由于表中的数据量太大,需要对表进行拆分,这样会导致表的结构发生变化,导致用户的应用程序受到影响,这时我们就可以使用视图来屏蔽实体表间的逻辑关系,去构建应用程序所需要的原始表关系。

4、数据的倒入导出

实际项目中,我们经常会使用视图来组织和导入及导出操作,十分方便。

 

三、视图的类型

因为不同的数据库,例如:mysql、Sql Server、Oracle及DB2等,他们不论在视图的创建和类型上都有不同,特别是在类型上区别较大,所以这里我们以Mysql来说明总结,至于其它数据的特点会在日后继续更新。

在Mysql中视图的类型分为:

1、MERGE

将视图的sql语句和引用视图的sql语句合并在一起,最后一起执行。

2、TEMPTABLE

将视图的结果集存放在临时表中,每次执行时从临时表中操作。

3、UNDEFINED

默认的视图类型,DBMS倾向于选择而不是必定选择MERGE,因为MERGE的效率更高,更重要的是临时表视图不能更新。

所以,这里推荐使用MERGE算法类型视图。

视图的特性

视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);

可以跟基本表一样,进行增删改查操作(ps:增删改操作有条件限制);

视图的作用

方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性;

更加安全,数据库授权命令不能限定到特定行和特定列,但是通过合理创建视图,可以把权限限定到行列级别

使用场合

权限控制的时候,不希望用户访问表中某些含敏感信息的列,比如salary...

关键信息来源于多个复杂关联表,可以创建视图提取我们需要的信息,简化操作;

以上是关于Mysql视图使用总结的主要内容,如果未能解决你的问题,请参考以下文章

mysql视图学习总结(转)

原对MYSQL下视图的一些总结

mysql基础总结

MySQL基础知识和常用命令总结

mysql/mariadb知识点总结 之 视图管理语句

mysql/mariadb知识点总结 之 视图管理语句