一个.背景

最初研究的相关内容数据库。仅仅是正式。从来没有练过,只能慢慢漂流,现在做的客房时,,非常多的知识需要使用视图,慢的实践。

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

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

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

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

二、实战

可是这次做的时候遇到一些小问题,假设在一张表中每一个数据记录仅仅有一条。而还有一张表中相应的数据却相应者多条,此时假设直接建视图。得到的结果会出现非常多反复。

怎样解决呢?

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

三、外键的创建

右击数据库关系图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3l5MTMw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

在加入的表上右击关系:



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

这里必需要设置好。上面表中标出的“Insert和Update规范”中的几种规范。

刚開始我选的是不运行不论什么操作,可是当我删除主键表中的记录时。就会报错。由于外键表中依赖的记录消失了,那么就不存在这个外键值了,所以外键表中的记录也必须删除,所以当涉及到删除操作时,我们应该选择“级联”,也就是外键表中的数据随着主键表的更新而更新。

详细设置例如以下:选择自己想要设置的列名就可以

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3l5MTMw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

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

四、视图的创建

视图的创建应该是比較easy的,仅仅要在视图下选择新建,选择自己想要的列名就可以。

在机房中使用视图时。我们应该注意的几点,我们会将视图看做一张表,所以在编写代码时,会新建一个实体类。来存放我们所须要的列数据。在D层查询表时,直接查询我们所创建的视图名称就可以,一般以V_开头。

以上是关于视图和主外键使用的一些相关操作,通过重构巩固一旦学到的知识。正确SQL server又多了一个小知识,了解。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

SQLserver创建与主外键的看法的更多相关文章

  1. 数据库的SQL语句创建和主外键删除操作

    create table UserType ( Id ,), Name nvarchar() not null ) go create table UserInfo ( Id ,), LoginPwd ...

  2. sqlserver创建和删除外键约束

    x先找出约束名字然后删除它我给个例子 --测试环境--主表create table test1(id int primary key not null,value int)insert test1 s ...

  3. 通过SQL脚本来查询SQLServer 中主外键关系

    在SQLServer中主外键是什么,以及主外键如何创建,在这里就不说了,不懂的可以点击这里,这篇文章也是博客园的博友写的,我觉得总结的很好: 此篇文章主要介绍通过SQL脚本来查看Sqlserver中主 ...

  4. MySQL创建数据表并建立主外键关系

    为mysql数据表建立主外键需要注意以下几点: 需要建立主外键关系的两个表的存储引擎必须是InnoDB. 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型. 外键列和参照列必须创建索引, ...

  5. SQL Server语句创建数据库和表——并设置主外键关系

    简单的创建数据库的 SQL 语句: use master go if exists(select * from sysdatabases where name='Test') begin select ...

  6. 经典SQL语句大全_主外键_约束

    一.基础(建表.建约束.关系) 约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整 ...

  7. 在PowerDesigner中设计物理模型1——表和主外键

    原文:在PowerDesigner中设计物理模型1--表和主外键 在PD中建立物理模型由以下几种办法: 直接新建物理模型. 设计好概念模型,然后由概念模型生成物理模型. 设计好逻辑模型,然后由逻辑模型 ...

  8. MySql不支持主外键

    创建表不支持主外键,能够添加外键成功,但是无法外键约束.查资料发现MySql的默认ENGINE 为MyISAM  ,不支持外键,需要修改为 INNODB 修改前: Create Table CREAT ...

  9. SQLSERVER清空(Truncate)被外键引用的数据表

    前言:我们知道SQLSERVER清空数据表有两种方式Delete和Truncate,当然两者的不同大家也都知道(不清楚的可以MSDN).不过这个错误“Cannot truncate table  be ...

随机推荐

  1. linux 经常使用配置

    教研室用的非常旧的fedora14,装一些软件和下载东西的时候比較蛋疼,恰巧ubuntu14.04 公布,于是安装试试,顺便记录下经常使用的配置,备忘. 1. 制作镜像,比較老的主板,写入方式选择US ...

  2. Swift基础--使用TableViewController自己定义列表

    首先建立一个swift项目,把storyboard的内容删掉,加入一个Navigation Controller.然后设置storyboard相应界面的class,在Navigation Contro ...

  3. Android开发调节屏幕亮度

    在播放器,我们经常看到这样的设计,即,在用户的特定部分将能够滑动屏幕向上或向下调整屏幕的亮度,上下滑动的某一部分将能够调整播放音量.并以滑动的进程可以进行调整,以玩. 如今,我不得不说一下亮度调节. ...

  4. Android DrawerLayout 抽屉

    Android DrawerLayout 抽屉 DrawerLayout 在supportV4 Lib在.类似的开源slidemenu如,DrawerLayout父类ViewGroup,自定义组件基本 ...

  5. Delphi XE7 发布时间

    Delphi7 XE7 我可以下载: http://altd.embarcadero.com/download/radstudio/xe7/delphicbuilder_xe7_win.iso 安装包 ...

  6. 编译Android源代码与内核总结

    这些天花了些时间自己下载了android源代码来编译,当中走了一些弯路导致耗了些时间,如今又一次梳理总结下,让有同样想法的人自己编译的时候能少走些弯路,官方指导文档在http://source.and ...

  7. 配置Tomcat的日志系统

    成功配置tomcat的log4j日志系统,格式:HTML+每天以yyyy-mm-dd.log命名的日志文件 一.引言: 实习单位让用log4j配置webapp的日志系统,要求产生的日志文件是html格 ...

  8. Unbound classpath container: 'JRE System Library [jdk17060]' in project ***

    项目报告的错误列表 Unbound classpath container: 'JRE System Library [jdk17060]' in project **** 误. 原因是,我升级JDK ...

  9. Mybatis简单的入门之增删改查

    一般的过程例如以下 1.加入Mybatis所须要的包,和连接数据库所需的包 2.配置mybatis-config.xml文件 3.配置与pojo相应的映射文件 mybatis-config,xml & ...

  10. 安装Microsoft .NET Framework 3.5 Service Pack 1回报1603错

    server升级了一下系统补丁(360安装),所有发现.net无法打开网站,提示" 因为无法创建应用程序域,因此未能运行请求.错误: 0x80070002 系统找不到指定的文件. " ...