当前位置:嗨网首页>书籍在线阅读

02-视图的定义

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

11.1 视图的定义

本节视频教学录像:6分钟

视图(View)是一个由查询语句定义数据内容的表,表中的数据内容就是SQL查询语句的结果集,行和列的数据均来自SQL查询语句中使用的数据表。但之所以说视图是虚拟的表,是因为视图并不在数据库中真实存在,而是在引用视图时动态生成的。那么使用视图和查询数据表又有哪些优势呢?

⑴使用视图简单,操作视图和操作数据表完全是两个概念,用户不用理清数据表之间复杂的逻辑关系,而且将经常使用的SQL数据查询语句定义为视图,可以有效地避免代码重复减少工作量。

⑵使用视图安全,用户只访问到视图给定的内容集合,这些都是数据表的某些行和列,避免用户直接操作数据表引发的一系列错误。

⑶使用视图想对独立,应用程序访问是通过视图访问数据表,从而程序和数据表之间被视图分离。如果数据表有变化,完全不用去修改SQL语句,只需要调整视图的定义内容,不用调整应用程序代码。

⑷复杂的查询需求。可以进行问题分解,然后将创建多个视图获取数据,再将视图联合起来就能得到需要的结果了。

假如因为某种需要,a表与b表需要进行合并以组成一个新的表c,最后a表与b表都不存在了。而由于原来程序中编写SQL分别是基于a表与b表查询的,这就意味着需要重新编写大量的SQL(改成向c表去操作数据),而通过视图就可以不用修改SQL。定义两个视图名字还是原来的表名a和b。a、b视图完成从c表中取出内容。需要说明的是,使用这样的解决方式,基于对视图的细节了解越详细越好。因为使用视图与使用表在语法上没区别。比如视图名a,那么查询还是“select *from a”。

视图的工作机制:当调用视图的时候,才会执行视图中的SQL,进行取数据操作。视图的内容没有存储,而是在视图被引用的时候才派生出数据。这样不会占用空间,由于是即时引用,视图的内容与真实表的内容总是一致的。

视图这样设计最主要的好处就是比较节省空间,当数据内容总是一样时,就不需要维护视图的内容,反维护好真实表的内容,就可以保证视图的完整性了。

提示 视图总是显示最近的数据。每当用户查询视图时,数据库都将重建数据。