重构个人版机房收费系统——视图

这几天一直在机房收费系统功能实现ING,在自考科目《数据库系统原理》的学习过程中,了解到数据库的三范式,刚好这次机房重构就用到了,又验证了那就话:学习,就是一个反复的过程微笑。三范式是应用了,查询语句又麻烦了,以前一张表中就可以查到的数据现在可能要涉及到两张表甚至三四张表。这时候查询语句就会很繁琐还很容易出现错误。这时候,我们就要考虑适当的“偷懒儿”了,更确切的说应该是捷径。今天,我们就一起分享一下另外一个数据库小助手——视图。

1.概念

1.1百度百科定义:

数据库中的视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据,能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

1.2自己的理解

简单的来讲,视图就是从若干个基本表和其他视图构造出来的虚拟表,用来存放在我们需要查询的数据,结果看起来更直观。这种构造方法采用select语句实现。

2.创建

视图的创建有两种方法:一种是代码创建视图,另外一种是在数据库企业管理器中直接创建。

2.1代码创建

书写格式(了解,不做主要介绍)
  CREATE VIEW <视图名>【(列名组)】AS <子查询>
       DROP VIEW <视图名>

注意:视图可以和基本表一样被查询,但是利用视图进行数据增,删,改操作,会受到一定的限制。
     (1)由两个以上的基本表导出的视图
(2)视图的字段来自字段表达式函数
(3)视图定义中有嵌套查询
(4)在一个不允许更新的视图上定义的视图

2.2企业管理器创建

打开数据库企业管理器,在要查询数据的数据库文件夹下找到节点‘视图’,右击,“新建视图”,在右面展开的内容窗口中就可以直接添加涉及到的数据表了,或者在左上角的图标按钮处添加新表。
根据数据输出要求,按照输出顺序,从相应的表中依次勾选对应的字段。从下图中可以看到,SQL语句自动在下方生成了。用户还可以在数据库中直接执行,验证查询结果是否正确。

重构个人版机房收费系统——视图_第1张图片


在程序中调用视图
重构个人版机房收费系统——视图_第2张图片

验证查询结果(此处是随意一张验证,不承接上例):
重构个人版机房收费系统——视图_第3张图片


3视图的作用

*1 简单性

看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。

*2 安全性

通过视图用户只能查询和修改他们所能见到的数据。但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上:
使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上。

* 3逻辑数据独立性

视图可帮助用户屏蔽真实表结构变化带来的影响。

4学习收获

随着编程中的多处应用,真心觉得视图是个很好的工具,不只体现在我们可以少写很多代码,也简化了很多复杂的关系,使编程变得很直观,很效率化。今天做一个功能的时候就用到了三张表,虽然查询字段不多,但是几个表之间的连接关系想想就复杂,有了视图就简单多了,不用再纠结多张表的左连接、右连接、外键、主键什么什么的。


**************************************************************************************************************************

编程在继续,经验在积累,欢迎多多交流,多多提意见。


你可能感兴趣的:(重构个人版机房收费系统——视图)