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

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

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

    任何一个用过或学过C的人对malloc都不会陌生.大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉.但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至 ...

  2. smartgit document Rebase

    The Rebase command allows you to apply commits from one branch to another. Rebase can be viewed as m ...

  3. 从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中

    //从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中 //作者:sandy //时间:2015-10-10 #inclu ...

  4. mysql server has gone away 与max_allowed_packed

    今天在本地测试测试给所有店铺批量发信息的功能,大约2万条记录,在本地和备用linux服务器上测试都没有问题,但上windows时一直报mysql server has gone away的错误,搜索一 ...

  5. 30天轻松学习javaweb_Eclipse在修改了web.xml后将自动更新到tomcat服务器中

    context.xml中增加<WatchedResource>WEB-INF/web.xml</WatchedResource>,Eclipse在修改了web.xml后将自动更 ...

  6. jsp自定义标签1

    1.编写一个实现tag接口的java类 package cn.itcast.web.tag; import java.io.IOException; import javax.servlet.http ...

  7. Mingyang.net:注解配置Hibernate时报错Unknown Entity

    注解配置时报错:org.hibernate.MappingException: Unknown entity: net.mingyang.cms.bean.User org.hibernate.Map ...

  8. mssqlserver 批量插入示例

    public bool DoQuestionSqlBulkCopy(DataTable dtDoQuestion,             string DoQuestionName,         ...

  9. nyoj 103 A + B problem II

    点击打开链接 A+B Problem II 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 I have a very simple problem for you. G ...

  10. 【转】三种不同类型的ssh隧道

    转自:http://blog.creke.net/722.html 大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人.下面是个人根据自己的 ...