码迷,mamicode.com
首页 > 其他好文 > 详细

机房收费系统——视图的运用

时间:2014-08-17 19:59:12      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   使用   os   io   strong   数据   

       对于视图在一年前的数据库学习和自考中就学到了,那时只是理论学习,这次在机房收费系统重构中亲自实践,加深了对视图的理解。

定义:

      从数据库系统外部来看,视图是用户从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,视图是由SELECT语句组成的查询定义的虚拟表,在数据库中并不真实存在。好比在提高班有学术部,安全部,纪律部等等,这些部门就是视图,需要给哪个部门开会就通知哪个部门。这些部门的人都是提高班各个期的(基本表),并且每个人都是独一无二的。

操作:

      由于视图只是存储的SQL Select 语句,因此创建一个视图实际上就是编写Select语句。


1.视图的创建:

CREATE VIEW<视图名>(<列表序列>)

AS <SELECT 查询语句>

以上是在查询分析器中直接以T_SQL语句创建视图,也可以在企业管理器中以图形化的方式创建视图。


2.视图的撤销:

DROP VIEW<视图名>


3.视图的更新:

如果视图是从单个基本表只使用选择、投影操作导出的,并且包含了基本表的主键,这样的视图称为“行列子集视图”,可以被执行更新操作(插入、修改、删除),但在定义的时候必须加上“WITH CHECK OPTION”短语。


应用:

       在机房收费系统中”下机“需要知道上机学生的卡号、卡内金额、上下机时间以及费率等等,其中查看”卡内余额“在T_Card中,查看”上机时间“在T_StuRecord中,通过使用视图可以将需要的数据放在一起,组合成一张新表。


在查询分析器中建立该视图:

create viewV_ManageOnline

as select T_Card.cardNo ,cash,loginTime

from T_Card,T_StuRecord

where T_Card .cardNo=T_StuRecord .cardNo and T_StuRecord .logoutTime=null


创建成功后:

bubuko.com,布布扣


bubuko.com,布布扣

在代码中使用视图和基本表基本上没有区别:

<span style="font-family:Microsoft YaHei;font-size:18px;"><span style="font-family:Microsoft YaHei;"> Public Function ManageDown() As DataTable Implements IManageUpStu.ManageDown
        Dim strSQL As String = "select * from V_ManageOnline"
        Dim helper As New SqlHelper.sqlHelper
        Dim dt = helper.GetDataTable(strSQL, CommandType.Text)
        Return dt
    End Function</span></span>

        最后我们来说说使用视图的好处。它使用户只能查看和修改他们所关心的某些特定数据,其它数据库或表既不可见也不可以访问,这样就提高了数据库的安全性。当需要多个表中的数据时,不必一个一个表去查询,只要一条简单的查询视图语句即可。视图向用户隐藏了表与表之间的复杂的连接操作,大大简化了用户对数据的操作。虽然一年前对视图就有所耳闻了,但那时觉得它好”高大上“,现在亲自实践了,原来 so easy。这就是我们学习的过程吧,循序渐进,逐层深入。



机房收费系统——视图的运用,布布扣,bubuko.com

机房收费系统——视图的运用

标签:style   blog   http   使用   os   io   strong   数据   

原文地址:http://blog.csdn.net/cyl_happygirl/article/details/38618729

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!