热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

SQLserver中的视图与主外键的创建

一.背景原来学过数据库的相关内容,只是形式上的,从来也没有实践过,徐徐飘过而已,如今在做机房时,很多知识需要用到视图,才开始去慢慢的实践。视图:我理解的就是一张表,它把我们所需要

一.背景

原来学过数据库的相关内容,只是形式上的,从来也没有实践过,徐徐飘过而已,如今在做机房时,很多知识需要用到视图,才开始去慢慢的实践。

视图:我理解的就是一张表,它把我们所需要的某个表或某几个表中的部分信息提取出来,形成了一张临时的表。

它主要有两个优点:1.简单,它呈现给我们的数据就是我们想要的数据,没有多余的。

 2.安全,提供给用户它们权限范围内的数据

我为什么会用到视图?举一个简单的例子,在查询用户信息时,我们可能会用到两张表中的内容。那么这个时候我就需要将两张表中我需要的数据提取出来形成一张虚拟的表,当我使用的时候,我就可以直接从这张虚拟的表中看到我想要看的数据。这张虚拟的表就是视图。

二、实战

但是这次做的时候遇到一些小问题,如果在一张表中每个数据记录只有一条,而另一张表中相应的数据却对应者多条,此时如果直接建视图,得到的结果会出现很多重复。

如何解决呢?

当然是利用主键和外键来进行约束。这样在视图中会自动归纳相应的数据记录。在外键表中存在的记录会自动与主键表中的匹配

三、外键的创建

右击数据库关系图:

在添加的表上右击关系:

 
 点击表和列规范,设定主键表和外键表的列名

这里必须要设置好,上面表中标出的“Insert和Update规范”中的几种规范。刚开始我选的是不执行任何操作,但是当我删除主键表中的记录时,就会报错,因为外键表中依赖的记录消失了,那么就不存在这个外键值了,所以外键表中的记录也必须删除,所以当涉及到删除操作时,我们应该选择“级联”,也就是外键表中的数据随着主键表的更新而更新。

具体设置如下:选择自己想要设置的列名即可


这样两张表的主键外键关系就大致建好了

四、视图的创建

视图的创建应该是比较容易的,只要在视图下选择新建,选择自己想要的列名即可。
在机房中使用视图时,我们应该注意的几点,我们会将视图看做一张表,所以在编写代码时,会新建一个实体类,来存放我们所需要的列数据。在D层查询表时,直接查询我们所创建的视图名称即可,一般以V_开头。

以上是关于视图和主外键使用的一些相关操作,通过重构巩固了以前学过的知识,对SQL server中的知识又多了几分了解。

推荐阅读
  • 微软平台的软件开发系统中,有着一套自己的约定规则。熟悉.net开发的都会对异常处理不陌生,现阶段的各种编程语言中,都不乏异常处理机制,个中原理也都大同小异。sqlserver在批处 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • Java连接SqlServer2008数据库(转)
    Java连接SqlServer2008数据库首先下载JDBC:下载地址:http:www.microsoft.comzh-cndownloaddetails.aspx?id21599下载 ... [详细]
  • 在Sqlserver数据库历代版本当中,系统数据库有四个,master,model,msdb,tempdbmaster----记录SQLServer系统的所有系统级信息。这包括实例范围的元数 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 数据库和C#中均为可空类型。这时候直接给字段赋值为nullparameters[9].Valuenull;执行的时候报错了,一大堆,总之说它少了一个参数。用sqlserverpr ... [详细]
  • 本文主要介绍关于asp.net,visualstudio,sqlserver的知识点,对【asp.net小说网站案例】和【asp.net电商项目】有兴趣的朋友可以看下由【师哥帮忙】投稿的技术文章,希 ... [详细]
  • 1.3.4ProfilerSQLServerProfiler是一个图形化的管理工具用于监督记录和检查SQLServer数据库的使用情况对系统管理员来说它是一个监视用户活动的间谍1. ... [详细]
  • 定制数据层关键字:数据层,访问,元数据,数据访问模型http://www.gaodaima.com/35448.html定制数据层_sqlserver ... [详细]
  • SQLServer2008全套 数据库简介,分离,收缩,快照
    第三课视频笔记:联机丛书的使用附加和分离数据库---收缩数据库--------数据库快照 ... [详细]
  • 在目标队列中对消息进行排队时出现异常。错误:15404,状态:19。CouldnotobtaininformationaboutWindowsNTgroupuserSERVER ... [详细]
  • 这篇文章主要讲解了“SQLServer与Access数据库ASP代码有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深 ... [详细]
  • SqlServer分区表概述(转载)
    什么是分区表一般情况下,我们建立数据库表时,表数据都存放在一个文件里。但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件 ... [详细]
  • php5.3.x访问sqlserver2005
    由于项目需要,临时用php访问Sqlserver数据库,于是配置mssql扩展,但是无法访问,按照网上各种dll文件copy都不成功,最后终于发现是php版本问题,我的版本是php5.3 ... [详细]
author-avatar
手机用户2602905861
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有