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

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

二、核查和规则
区别:
数量:一个字段,可以有多个约束,却只能有一个规则。
先后:核查直接在字段上创建,而规则由单独对象创建,然后绑定到字段上面。 
范围:核查是建立在一张表的基础上,而规则可以绑定到不同表里的字段。(假使十个表里有“数量”字段,核查需要建立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. CentOs of Tomcat commands

    1.启动tomcat 进入tomcat目录的bin目录下 执行 [root@iZ253lxv4i0Z bin]# ./startup.sh Using CATALINA_BASE: /usr/loca ...

  2. solr基于jetty容器配置后台登陆角色用户名密码

    solr版本4.0.0 我的solr下载后解压在d盘,你的随意. 在D:\apache-solr-4.0.0\apache-solr-4.0.0\example\etc目录下新建role.proper ...

  3. 转--Invalidate和postInvalidate的更新view区别

    Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用. Android提供了Inva ...

  4. Hadoop中两表JOIN的处理方法(转)

    1. 概述 在传统数据库(如:MYSQL)中,JOIN操作是非常常见且非常耗时的.而在HADOOP中进行JOIN操作,同样常见且耗时,由于Hadoop的独特设计思想,当进行JOIN操作时,有一些特殊的 ...

  5. Introduction to ASP.NET Web Programming Using the Razor Syntax (C#)

    1, http://www.asp.net/web-pages/overview/getting-started/introducing-razor-syntax-c 2, Introduction ...

  6. MySQL优化技巧之四(数据库设计中的一些技巧)

    1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对 ...

  7. windows service自动启动相关设置

    http://blog.csdn.net/thebesttome/article/details/7590025   原帖:http://www.cnblogs.com/junior/archive/ ...

  8. C#多字符分割

    string demo = "0 1 2 3";string[] result = demo.Split(" ,,".ToCharArray());试试,中间的 ...

  9. windowns--HANDLE,

    HANDLE: 在windows程序中,有各种各样的资源(窗口.图标.光标等),系统在创建这些资源时会为他们分配内存,并返回标示这些资源的标示号,即句柄. 句柄指的是一个核心对象在某一个进程中的唯一索 ...

  10. C++学习28 重载>>和<<(输入输出运算符)

    在C++中,系统已经对左移运算符“<<”和右移运算符“>>”分别进行了重载,使其能够用于输入输出,但是输入输出的处理对象只能是系统内建的数据类型.系统重载这两个运算符是以系统类 ...