数据库视图的强大

    在机房收费系统中,下机时计算上机消费,需要从基本数据表里的数据,上机记录表里的上机时间数据,卡表里的余额记录和学生表里的数据,如果我们不用视图,按常规先分别从那四个个数据表里查询数据,然后再计算上机消费,计算完消费之后还得更新上机记录表里的上机记录,和更新卡表里的余额,十分麻烦,用序列图则可以看出:(这里我建实体类时将卡表的和学生表建为一个实体类,但其实还得分别从从两张表里查询,但是序列图里就一次查询记录了)

 

 

    视图:是一种虚拟的表,是从一个或多个基本表导出的虚表,他的数据 来源于一些基本表,当基本表数据发生变化时,视图的数据也会自动发生变化。我们可以像对基本表一样去操作视图,但需要指定用户对视图的访问权限,这样一些机密的数据对无权限的用户就影藏起来了,达到一定程度的安全保护。

 

    如果我们在基本数据表、卡表、学生表、上机记录表基础上创建一个视图,原本要四次的查询,这时我们可以一次就OK啦。用序列图展示:

 

    创建该视图代码:

SELECT     dbo.T_Card.cardNo, dbo.T_Card.cash, dbo.T_OnLine.onDate, dbo.T_OnLine.onTime, dbo.T_OnLine.outDate, dbo.T_BasicData.serial, dbo.T_BasicData.fixedRate, 
                      dbo.T_BasicData.tmpRate, dbo.T_BasicData.unitTime, dbo.T_BasicData.leastTime, dbo.T_BasicData.preparTime, dbo.T_BasicData.limitCash, 
                      dbo.T_OnLine.studentName, dbo.T_Student.department, dbo.T_Student.sex, dbo.T_Card.type
FROM         dbo.T_Card INNER JOIN
                      dbo.T_OnLine ON dbo.T_Card.cardNo = dbo.T_OnLine.cardNo INNER JOIN
                      dbo.T_Student ON dbo.T_Card.studentNo = dbo.T_Student.studentNo CROSS JOIN
                      dbo.T_BasicData


 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值