对于视图在一年前的数据库学习和自考中就学到了。那时仅仅是理论学习。这次在机房收费系统重构中亲自实践,加深了对视图的理解。
定义:
从数据库系统外部来看,视图是用户从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,视图是由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。这就是我们学习的过程吧,循序渐进。逐层深入。