小视图有大秘密

简介:         视图,是什么nie,在我们小学的时候,就接触过视图的概念,那时候天总是那么蓝,云总是那么潇洒,给定一个立体图形,让小伙伴画出这个图形的三视图,即---主视图,俯视图,左视图,时过境迁,她再一次出现在我面前,这一次,她以另一种身份和我相约在.
        视图,是什么nie,在我们小学的时候,就接触过视图的概念,那时候天总是那么蓝,云总是那么潇洒,给定一个立体图形,让小伙伴画出这个图形的三视图,即---主视图,俯视图,左视图,时过境迁,她再一次出现在我面前,这一次,她以另一种身份和我相约在.Net版机房收费系统,现在让我们来看看她的又一神秘面纱的背后,蕴藏着什么样的知识呢?
        视图,百度百科对她这样进行阐述,在SQL中,视图是虚表,是从一个或几个基本表或者是视图中导出来的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据,视图是原始数据库数据的一种变化,是查看表中数据的另外一种方式,可以将视图看成是一个移动的窗口,通过她可以看到我们想要的数据,视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中,那些用于产生视图的表叫做该视图的基表,接下来,以机房收费系统中查看余额为例,看看视图在我们的实际应用中是如何在她的舞台动情演绎。
      首先,我们来看一下,学生查看余额中的逻辑:

      第一:判断卡号是否存在;

      第二:从学生表和卡表中读取相应信息;

      接着,看看如何创建视图,如下图所示:

      a、右击新建视图;

      

     b、选择涉及到的表或视图,学生查看余额中涉及到卡表和学生表;

     

    c、选择我们需要的字段,在这里,你也可以把字段都写上,后续的功能中如果有类型的从卡表和学生表中读取信息的,直接调用该视图即可。

    

   d、保存即可,视图的命名规范为 视图名 = V + “_” + 名称。

   

   那我们的D层的代码改如何写,和以前直接查表的方法有什么不一样呢?代码展示如下:

   

<span style="font-size:18px;">'**********************************************
'文 件 名: V_StuCardViewDAL
'命名空间: DAL
'内    容: 学生查看余额,从卡表和学生表读取相关信息
'功    能: 学生查看余额
'文件关系:
'作    者:丁国华
'小    组:宝贝计划
'生成日期: 2014/7/24 11:30:16
'版本号:V2.0
'修改日志:
'版权说明:
'**********************************************
Imports System.Data.SqlClient
Public Class V_StuCardViewDAL : Implements IDAL.IStuCardView
    ''' <summary>
    ''' 学生查看余额,从学生表和卡表里读取相关信息
    ''' </summary>
    ''' <param name="cardNo"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function ReadStuCardinfo(cardNo As String) As List(Of Entity.StuCardViewEntity) Implements IDAL.IStuCardView.ReadStuCardinfo
        Dim strText As String = "select * from V_StuCardView where cardNo=@cardNo" '从视图V_StuCardView这张虚拟的表中读取相关信息
        Dim cmdType As CommandType = CommandType.Text '命令类型
        Dim parameter As SqlParameter() '传参

        parameter = {New SqlParameter("@cardNo", cardNo)}
        Dim sqlHelper As New SqlHelper

        Dim dt As New DataTable
        Dim myList As List(Of Entity.StuCardViewEntity)

        dt = sqlHelper.ExecuteReaderTable(strText, cmdType, parameter)
        myList = EntityHelper.convertToList(Of Entity.StuCardViewEntity)(dt)

        Return myList
    End Function
End Class
</span>
       一如我们所看到的,使用视图,视图具有简单的特点,就学生查看余额来说,没有使用视图之前,我们需要从卡表和学生表里分别查询相应信息,使用视图之后,直接查询视图即可,视图,简化了我们对数据的理解,也可以简化其操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。使用视图,还有一个好处就是安全,通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。

       第二版机房收费系统,未完,待续......

   
目录
相关文章
|
2天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
12天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
6天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
474 199
|
4天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
594 157
|
4天前
|
数据采集 消息中间件 人工智能
跨系统数据搬运的全方位解析,包括定义、痛点、技术、方法及智能体解决方案
跨系统数据搬运打通企业数据孤岛,实现CRM、ERP等系统高效互通。伴随数字化转型,全球市场规模超150亿美元,中国年增速达30%。本文详解其定义、痛点、技术原理、主流方法及智能体新范式,结合实在Agent等案例,揭示从数据割裂到智能流通的实践路径,助力企业降本增效,释放数据价值。
|
10天前
|
人工智能 自然语言处理 安全
国内主流Agent工具功能全维度对比:从技术内核到场景落地,一篇读懂所有选择
2024年全球AI Agent市场规模达52.9亿美元,预计2030年将增长至471亿美元,亚太地区增速领先。国内Agent工具呈现“百花齐放”格局,涵盖政务、金融、电商等多场景。本文深入解析实在智能实在Agent等主流产品,在技术架构、任务规划、多模态交互、工具集成等方面进行全维度对比,结合市场反馈与行业趋势,为企业及个人用户提供科学选型指南,助力高效落地AI智能体应用。
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
573 46