讲了关于数据库的很多内容,也讲了很多约束,对唯一和主键、核查和规则、外键约束很感兴趣。

一、唯一和主键(实体完整性)
区别:
数量:一张表只可以有一个主键约束,却可以有多个唯一约束。
是否空值:主键不允许为空,唯一允许为空。
相同点:
唯一性:都保证了数据的唯一性,不可重复。
复合:均可由一个或多个字段复合形成。

二、核查和规则
区别:
数量:一个字段,可以有多个约束,却只能有一个规则。
先后:核查直接在字段上创建,而规则由单独对象创建,然后绑定到字段上面。 
范围:核查是建立在一张表的基础上,而规则可以绑定到不同表里的字段。(假使十个表里有“数量”字段,核查需要建立10次,而规则可以只有一个)
删除:删除表的同时,核查(约束)也被删除,而规则不会。
相同点:
规则通常被用于执行和核查约束相同的功能。

三、外键(参照完整性:数据一致性)
创建:
右击数据库关系图——选择新建——选择需要创建约束的表

在外键关系中选择添加——打开表和列规范进行设置——设置主键表和外键表


注意:必须保证主键表和外键表有相同的列数(假如主键表有4列,那么外键表也必须有4列)。

必须保证主键表和外键表有相同的字段。


修改:
1,内容:主键表和外建表不一定需要有相同的列数,也不一定主键表和外建表需要有相同的字段。主外键约束,只要有相同的属性就可以使用。比如说在新闻类别表里,有新闻ID。在新闻内容表里,也有新闻ID。这是,就可以建立主外键约束。
2,时间:2015.4.11 


作用:
外键联系主要是确保了数据的一致性,当外键表中的列值和主键表不符时,则无法保存;当改变了主键表中的列值,则外键表中对应的列值同时改变。



请大家多多指教,谢谢!


SQL:认识数据库约束的更多相关文章

  1. SQL数据库约束、默认和规则

    数据的完整性 实体完整性 又称为行完整性,即数据库中的所有行都具有一个非空且没有重复的主键值 MSSQL中通过唯一索引.PRIMARY KEY约束.UNIQUE约束.INDENTITY属性等来强制主键 ...

  2. 第16课-数据库开发及ado.net-数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍

    第16课-数据库开发及ado.net 数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍 SQL语句入门(脚本.命令) SQL全名是结构化查询语言(Structur ...

  3. MySQL-第三篇SQL语句基础(2)数据库约束

    1.数据库约束. 约束是在表上强制执行的数据校验规则,约束主要用于保证数据库里数据的完整性. MySQL使用information_schema数据库里的TABLE_CONSTRAINTS表来保存该数 ...

  4. 关于SQL SERVER数据库学习总结

    对于SQL SERFVER数据库也学了有一阵子了,自己也对自己所学做了一些总结. 我们首先学习数据库设计的一些知识点和用SQL语句建库. 设计数据库步骤:需求分析阶段,概要设计阶段,详细设计阶段, 建 ...

  5. SQL PRIMARY KEY 约束\SQL FOREIGN KEY 约束\SQL CHECK 约束

    SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. 每个表都应该有一个主键,并且每个表只能有一个主 ...

  6. SQL CREATE TABLE 语句\SQL 约束 (Constraints)\SQL NOT NULL 约束\SQL UNIQUE 约束

    CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据 ...

  7. 清空SQL Server数据库中所有表数据的方法(转)

    清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...

  8. 5、SQL Server数据库、T-SQL

    SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步- ...

  9. SQL Server - 数据库初识

      在互联网笔试中,常遇到数据库的问题,遂来简单总结,注意,以 Sql Server 数据库为例. 数据库 数据库系统,Database System,由数据库和数据库管理系统组成. 数据库,Data ...

  10. 转:SQL SERVER数据库中实现快速的数据提取和数据分页

    探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构: CREATE TABLE [dbo]. ...

随机推荐

  1. 一.OSI与TCP

    一. TCP/IP的由来 OSI参考模型由来 计算机网络产生的最初阶段,每个计算机厂商都实现了自己的一套计算机网络体系结构;异构的网络之间无法进行通信.因此,ISO委员会推出了一种用于开放系统互联的网 ...

  2. MyEclipse9中的不伤眼修改、FreeMarker插件、JQuery提示插件、全屏(FullScreen)插件的安装

    ============下载相关附件===================== http://files.cnblogs.com/fhtwins/eclipse-fullscreen_1.0.7.zi ...

  3. “/wechat”应用程序中的服务器错误。

    对路径“C:\inetpub\wwwroot3\wechat\img\qrcode\”的访问被拒绝. “/wechat”应用程序中的服务器错误. 对路径“C:\inetpub\wwwroot3\wec ...

  4. Wix安装包权限问题

    Wix在安装完成之后,如果遇到非管理员用户(域用户或Win7+系统,UAC权限问题等),修改配置文件(setting.ini)文件时,会遇到文件权限为只读,无法修改问题: 解决方案有两种: 首先添加U ...

  5. Linux网络流量监控工具-iftop

    参考:http://blog.163.com/jgh2008@126/blog/static/28596246201092081139283/ 一.获得和安装iftop Centos:yum inst ...

  6. oracle decode

    decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,.. ...

  7. linux 去掉 ^M

    要去除他,最简单用下面的命令: dos2unix filename 亲测可用   以下方式不可以: set ff=unix  %s/^M//g 可能是^M输入方式有问题 ^M 输入方法: ctrl+V ...

  8. PS 查看选定图层的高宽

    1.    选中图层,然后按键盘"Ctrl+T(菜单中点编辑->自由变换)",然后上面工具条会出现调整比率,宽W:100% H:100%,然后在100%的位置点鼠标右键,选择 ...

  9. python datetime时区转换

    from pytz import timezone def datetime_as_timezone(date_time, time_zone): tz = timezone(time_zone) u ...

  10. Hibernate 实体关联关系映射【转】

    Hibernate关联关系映射目录│ ├─单向关联│  ├─  一对一外键单向关联│  ├─  一对一主键单向关联│  ├─  一对一连接表单向关联│  ├─  一对多外键单向关联│  ├─  一对多 ...