一个.背景

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

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

它主要有两个长处: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. UseCase事件描述叙事流规范

    文化/fasiondog 整理的用例需求编写规范.分享部分UseCase事件描述叙事流规范.其中.标准5~10.12来自哪里<编写有效用例>([美国] Alistair Cockburn ...

  2. Springmvc +JNDI 在Tomcat下 配置数据源(转)

    一.             简介 jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务 ...

  3. 重写onBackPressed方法

    android手机back按键响应方法重构: long exitTime = System.currentTimeMillis() - 2000; public void onBackPressed( ...

  4. UVA 11388-GCD LCM(数学)

    I I U C   O N L I N E   C  Problem D: GCD LCM Input: standard input Output: standard output The GCD ...

  5. windows API与C#的数据类型对应关系表

    API与C#的数据类型对应关系表 API数据类型 类型描述 C#类型 API数据类型 类型描述 C#类型 WORD 16位无符号整数 ushort CHAR 字符 char LONG 32位无符号整数 ...

  6. Lua基础(转)

    局部定义与代码块: 使用local声明一个局部变量或局部函数,局部对象只在被声明的那个代码块中有效. 代码块:一个控制结构.一个函数体.一个chunk(一个文件或文本串)(Lua把chunk当做函数处 ...

  7. 笔试题&amp;面试题:输入一个维度,逆时针打印出一个指定矩阵

    称号:考虑到用户层面.打印出指定的矩阵,例如,一个给定的用户10,例如,下面的输出应被视为在图: 程序如下所示: #include <stdio.h> #include <mallo ...

  8. struts 1.x 原理

    Struts 当我接触到这个框架的时候.我就在想为什么是struts,而不是什么CraigFramework.结构.支撑,这样来理解也不难怪了. 为什么须要struts? 在struts in act ...

  9. ym——Android之ListView性能优化

    转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! Android之ListView性能优化 假设有看过我写过的15k面试题的朋友们一定知 ...

  10. StackExchange.Redis Client

    StackExchange.Redis Client 这期我们来看StackExchange.Redis,这是redis 的.net客户端之一.Redis是一个开源的内存数据存储,可以用来做数据库,缓 ...