`
i_am_birdman
  • 浏览: 282638 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

主键、外键、唯一、约束区别

 
阅读更多
什么是主键?

在数据库中,常常不只是一个表,这些表之间也不是相互独立的。不同的表之间需要建立一种关系,才能将它们的数据相互沟通。而在这个沟通过程中,就需要表中有一个字段作为标志,不同的记录对应的字段取值不能相同,也不能是空白的。通过这个字段中不同的值可以区别各条记录。就像我们区别不同的人,每个人都有名字,但它却不能作为主键,因为人名很容易出现重复,而身份证号是每个人都不同的,所以可以根据它来区别不同的人。数据库的表中作为主键的字段就要像人的身份证号一样,必须是每个记录的值都不同,这样才能根据主键的值来确定不同的记录。


什么是外键?
foreignkey
说明你的表A中的某项a,是引用表B的某列b

为什么要使用外键?
RDBMS的基本概念,可以维护数据库的完整。

如何来用?
涉及到数据库的定义,参见tsql help file



唯一性约束和主键的区别是什么?
唯一性约束
1) 唯一性约束所在的列允许空值,但是主键约束所在的列不允许空值。
(2) 可以把唯一性约束放在一个或者多个列上,这些列或列的组合必须有唯一的只。但是,唯一性约束所在的列并不是表的主键列。
(3) 唯一性约束强制在指定的列上创建一个唯一性索引。在默认情况下,创建唯一性的非聚簇索引,但是,也可以指定所创建的索引是聚簇索引。

主键:
1) 用于标识某行而且与之相关.
2) 是不可能(或很难)更新.
3) 不应该允许空(NULL).

唯一域/字段:
1) 用于作为访问某行的可选手段.
2) 只要唯一就可以更新.
3) 可以为空(NULLs).

注意唯一和主键的区别,它们都是创建一个唯一的索引,一个表格仅含有一个主键约束列,但是,它有可能在其他列中含有许多的唯一约束。
分享到:
评论

相关推荐

    oracle建表练习(主键外键)

    主键保证了数据的唯一性,而外键保证了数据的关联性和一致性。这两者的有效使用,不仅有助于维护数据的完整性和准确性,还能提高数据库查询的效率。 总结来说,通过本次练习,初学者不仅能够掌握Oracle数据库中创建...

    主键与外键的创建

    同时,外键约束也可以控制级联操作,如级联删除或级联更新,使得当主键表中的数据发生变化时,关联的外键表中的数据能够相应地更新或删除。 总的来说,主键和外键在数据库设计中起着至关重要的作用,它们确保了数据...

    T_SQL建库建表加约束(主键,外键,检查,唯一等约束,插入数据)

    本主题将深入探讨如何利用T-SQL进行数据库构建、表设计以及应用不同类型的约束,包括主键、外键、检查约束和唯一性约束,并演示数据的插入方法。 1. **创建数据库**: 在T-SQL中,使用`CREATE DATABASE`语句来创建...

    数据主键和外键的错误总结

    2. **引用非主键**:理论上,外键应当引用目标表的主键,而非某个唯一的非主键字段。这样可以更好地维护参照完整性。 - **解决方法**:始终将外键指向目标表的主键,以确保数据的一致性。 3. **表格间的非正式...

    数据完整性、主键和外键、数据类型

    ### 数据完整性、主键和外键、数据类型 #### 数据完整性 数据完整性是数据库设计中的一个核心概念,指的是确保数据库中的数据保持一致性和准确性。在实际应用中,数据完整性能够帮助我们防止非法或错误的数据被...

    数据库技术与应用 设置成绩表主键和外键约束-A学习任务书.doc

    在《数据库技术与应用》课程中,通过使用SQL Server Management Studio (SSMS) 进行实际操作,学生将能够更深入地理解和掌握如何在数据库中设置主键和外键约束。这不仅可以提高数据管理能力,也有助于理解数据库之间...

    oracle表主键和外键的区别

    **唯一键**与主键相似,也是保证数据唯一性的约束,但有以下不同: 1. 允许空值:唯一键允许包含空值,而主键不允许。 2. 不是主键:一个表可以有多个唯一键,但只有一个主键。 **左联接**和**右联接**是SQL中的两...

    sql外键约束

    外键约束是两个表之间的一种关联,一个表中的外键引用了另一个表的主键,从而建立了两个表之间的联系。下面我们将深入探讨外键约束的概念、作用、使用方法以及其在SQL Server中的实现。 外键约束的主要作用: 1. *...

    MySQL 创建主键,外键和复合主键的语句

    在数据库设计中,主键和外键是关系型数据库中非常重要的概念,它们用于确保数据的完整性和一致性。本文将详细介绍如何在MySQL中创建主键、外键以及复合主键。 1. **创建主键** 主键是数据库表中一个或一组字段,其...

    如何区分SQL数据库中的主键与外键

    一、什么是主键、外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如 : 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一...

    SQL的主键和外键的作用.doc

    主键和外键的区别主要体现在它们的功能和约束上。主键是表内的唯一标识,不允许重复且不能为空,主要用于确保单个表的实体完整性;而外键是表间的关联,可以有重复值,也可以为空,主要用来维护参照完整性,即两个表...

    T-SQL建库建表加约束(主键,外键,检查,唯一等约束,建文件夹)

    T-SQL建库建表的同时加约束,调用DOS cmdshell命令建文件夹, if exists(select * from sysobjects where name ='Result') drop table Result create table Result ( ExamDate datetime default getdatet() not null,...

    SQLServer主键和唯一约束的区别

    首先说明一点,主键又称主键约束,它也是一种约束,看下它和唯一约束的创建语法: ...·主键字段可以做为其他表的外键,唯一约束字段不可以做为其他表的外键; ·SQLServer默认为主键字段创建聚集索引,为唯一约

    删除数据库的所有表、存储过程、主键、外键、索引等

    3. 删除主键和外键:在删除表时,与之相关的主键和外键约束通常会自动删除。但如果需要单独处理,可以使用`ALTER TABLE`语句来删除主键和外键约束。 4. 删除索引:在删除表之前,可以使用`DROP INDEX`语句删除单个...

    Hibernate 一对一关联映射(主键关联VS唯一外键关联)

    本篇文章将深入探讨两种实现一对一关联的方式:主键关联(Primary Key Join)和唯一外键关联(ForeignKey Join),并结合源码和实际工具进行详细讲解。 一、主键关联(Primary Key Join) 1. 主键关联的概念: ...

    关于关系型数据库基本知识(主键、外键、一对一、一对多、多对一等).docx

    主键和外键本身自带唯一性约束,但它们的主要目的是确保数据完整性,而索引的目的是提升查询性能。 关系型数据表之间存在多种关联关系,包括一对一、一对多和多对多。一对一关系相对少见,一般出现在将大型表拆分为...

Global site tag (gtag.js) - Google Analytics