Heim  >  Artikel  >  Datenbank  >  机房收费系统视图的运用

机房收费系统视图的运用

WBOY
WBOYOriginal
2016-06-07 16:00:451010Durchsuche

对于视图在一年前的数据库学习和自考中就学到了,那时只是理论学习,这次在机房收费系统重构中亲自实践,加深了对视图的理解。 定义: 从数据库系统外部来看,视图是用户从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,视图是由SELECT语句组

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

<strong>定义:</strong>

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

<strong>操作:</strong>

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

1.视图的创建:

CREATE VIEW()

AS

以上是在查询分析器中直接以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。这就是我们学习的过程吧,循序渐进,逐层深入。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn