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

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

定义:

      从数据库系统外部来看,视图是用户从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,视图是由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


创建成功后:


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

<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。这就是我们学习的过程吧,循序渐进,逐层深入。



  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值