数据库中什么是主键,什么是外键

数据库中什么是主键,什么是外键,第1张

主键(Primary key): 也称为主码或主关键字,用于惟一地确定一个元组的属性或属性组(复合主码)。每个关系都有一个并且只有一个主码。

外键(Foreign Key):也称为外码或外部关键字。如果一个属性集不是所在关系的关键字,但是是其他关系的关键字,则该属性集称为外部关键字。

在关系数据库中可以通过外键使两个关系关联,这种联系通常是一对多(1:n)的,其中主(父)关系(1方)称为被参照关系,从(子)关系(n方)称为参照关系。

扩展资料:

数据库主键作用:

1、保证实体的完整性

2、加快数据库的 *** 作速度

3、在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复。

4、DBMS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

在有些数据库中,虽然主键不是必需的,但最好为每个表都设置一个主键,不管是单主键还是复合主键。它存在代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,以及本记录的修改与删除。

参考资料来源:百度百科-数据库主键

数据库的主键指的是一个列或多个列组合,其值能唯一标注表中的每一行,通过他可以强制表的实体完整性。主键可以用来表示一个精确定位的特定行,如果没有主键,无法精准定位一条记录是否就是你要的相关行记录,这样就会导致更新或者删除表中特定的行很困难。如果有主键来约束行记录的唯一性后,就可以用主键来解决问题。

主键可以用来表示一个精确定位的特定行,如果没有主键,无法精准定位一条记录是否就是你要的相关行记录,这样就会导致更新或者删除表中特定的行很困难。如果有主键来约束行记录的唯一性后,就可以用主键来解决问题。

主键作用:

1、保证实体的完整性;

2、加快数据库的 *** 作速度;

3、在表中添加记录时,DBMS会自动检查记录的主键值,不允许该值与其他值重复。

扩展资料

数据库中主键、主码、主属性、关键字、候选关键字、码的区别:

主码=主键=主关键字,关键字=候选码 候选关键字=候选码中除去主码的其他候选码。

码:唯一标识实体的属性或属性组合称为码。

候选码(关键字):某一属性组的值能唯一标识一个元组而其子集不能(去掉任意一个属性都不能标识该元组),则称该属性组为候选码(补充元组:表中的一行即为一个元组)

主属性:候选码包含的属性(一个或多个属性)。

主码(主键、主关键字):若一个关系有多个候选码,选择其中一个为主码。

关键字就是为了方便编程人员在打开数据库的时候知道每个表所代表的值是什么。主要起到注释作用。

索引可以提高查询的速度。

其实主键和索引都是键,不过主键是逻辑键,索引是物理键,意思就是主键不实际存在,而索引实际存在在数据库中,主键一般都要建,主要是用来避免一张表中有相同的记录,索引一般可以不建,但如果需要对该表进行查询 *** 作,则最好建,这样可以加快检索的速度 。

主键是定义一个表中起主要作用的数据项,这些数据项的数据在表中是唯一的,同时系统按主键为表建立索引。\x0d\\x0d\外键是定义一个表中的某数据项的数据,要参照另一个表的主键数据。既没有在另一个表的主键数据中出现的数据,不允许在这个表的外键数据项中出现。\x0d\\x0d\主键:表中记录的唯一标识\x0d\\x0d\外键:依赖于别的表的数据\x0d\\x0d\唯一键:在表中唯一\x0d\\x0d\键是一个或多个字段的组合\x0d\\x0d\唯一键:可以确定一条记录的字段(或字段组合),一张表可以有多个唯一键,正如可以识别你的身份的可以是身份z,学生证,军人证\x0d\\x0d\主键:你把唯一键的一个选做主键,一张表只能有一个主键\x0d\\x0d\外键:所定义的外键是另一张表的主键,\x0d\\x0d\主键:表中记录的唯一标识,外键:依赖于别的表的数据,唯一键:在表中唯一。\x0d\\x0d\主键和唯一键的一个区别:主键是不允许为NULL的,唯一键则可以,当然你可以加上NOT NULL来限制它\x0d\\x0d\主键:能够唯一表示数据表中的每个记录的字段或者字段的组合就称为主键。一个主键是唯一识别一个表的每一行记录,但这只是其作用的一疗分,主键的主要作用是将记录和存放在其他表中的数据进行关联,在这一点上,主键是不同表中各记录间的简单指针,主键约整就是确定表中的每一条记录,主键不能是空值,唯一约束是用于指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值,所以,主键的值对用户而言是没有什么意义,并且和它赋予的值也没有什么特别联系。\x0d\\x0d\外键:\x0d\\x0d\若有两个表A,B,C是A的主键,而B中也有C字段,则C就是表B的外键,外键约束主要用来维护两个表之间数据的一致性。\x0d\\x0d\A为基本表,B为信息表。\x0d\\x0d\在数据库中,常常不只是一个表,这些表之间也不是相互独立的,不同的表之间需要建立一种关系,才能将它们的数据相互沟通,而在这个沟通过程中,就需要表中有一个字段作为标志,不同的记录对应的字段取值不能相同,也不能是空白的,通过这个字段中不同的值可以区别各条记录,就像我们区别不同的人,每个人都有名字,但它却不能作为主键,因为人名很容易出现重复,而身份z号是每个人都不同的,所以可以根据它来区别不同的人,数据库的表中作为主键的段段就要像人的身份z号一样,必须是每个记录的值都不同,这才能根据主键的值来确定不同的记录。\x0d\\x0d\什么是外键?\x0d\\x0d\说明你的表A中的某项a,是引用表B的某列b\x0d\\x0d\为什么要使用外键?\x0d\RDBMS的基本概念,可以维护数据库的完整。\x0d\\x0d\如何来用,涉及到数据库的定义。\x0d\\x0d\唯一约束和主键的区别是什么?\x0d\\x0d\唯一性约束\x0d\\x0d\唯一性约束所在的列允许空值,但是主键约束的列不允空值。\x0d\\x0d\可以把唯一约束放在一个或者多个列上,但是,唯一性约束所在的列并不是表的主键列。\x0d\\x0d\唯一性约束强制在指定的列上创建一个唯一性索引,在默认情况下,创建唯一性的非聚簇索引,但是,也可以指定所创建的索引是聚簇索引。\x0d\\x0d\主键:\x0d\\x0d\用于标识某行而且与之相关\x0d\\x0d\是不可能更新\x0d\\x0d\不应该允许空\x0d\\x0d\唯一域/字段\x0d\\x0d\用于作为访问某行的可选手段。\x0d\\x0d\只要唯一就可以更新\x0d\\x0d\可以为空\x0d\\x0d\注意唯一和主键的区别,它们都是创建一个唯一的索引,一个表格仅含有一个主键约束列,但是,它有可能在其他列中含有许多的唯一约束。

首先需要保证需要改为主键的列的已存在的值不能有空或者重复的,比如修改sno表的stu为主键的代码为:

Alter  table sno alter column stu char(6) not null;

Alter table sno add constraint pk_stu  primary key (stu)。

sql 语句就是对数据库进行 *** 作的一种语言,结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

五大约束

1—-主键约束(Primay Key Coustraint) 唯一性,非空性

2—-唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个

3—-检查约束 (Check Counstraint) 对该列数据的范围、格式的限制(如:年龄、性别等)

4—-默认约束 (Default Counstraint) 该数据的默认值

5—-外键约束 (Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列

五大约束的语法示例

1—-添加主键约束(将stuNo作为主键)

alter table stuInfo

add constraint PK_stuNo primary key (stuNo)

2—-添加唯一约束(身份z号唯一,因为每个人的都不一样)

alter table stuInfo

add constraint UQ_stuID unique(stuID)

3—-添加默认约束(如果地址不填 默认为“地址不详”)

alter table stuInfo

add constraint DF_stuAddress default (‘地址不详’) for stuAddress

4—-添加检查约束 (对年龄加以限定 15-40岁之间)

alter table stuInfo

add constraint CK_stuAge check (stuAge between 15 and 40)

alter table stuInfo

add constraint CK_stuSex check (stuSex=’男’ or stuSex=’女′)

5—-添加外键约束 (主表stuInfo和从表stuMarks建立关系,关联字段stuNo)

alter table stuInfo

add constraint FK_stuNo foreign key(stuNo)references stuinfo(stuNo)

约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9 章)。在SQL Server 中有5 种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和缺省约束(Default Constraint)。

主键约束(PRIMARY KEY)

1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。

2) 是不可能(或很难)更新.

3) 主键列上没有任何两行具有相同值(即重复值),不允许空(NULL).

4) 主健可作外健,唯一索引不可;

2唯一性约束(UNIQUE)

1) 唯一性约束用来限制不受主键约束的列上的数据的唯一性,用于作为访问某行的可选手段,一个表上可以放置多个唯一性约束.

2) 只要唯一就可以更新.

3) 即表中任意两行在 指定列上都不允许有相同的值,允许空(NULL).

4) 一个表上可以放置多个唯一性约束

3唯一索引(INDEX)

创建唯一索引可以确保任何生成重复键值的尝试都会失败。

唯一性约束和主键约束的区别:

(1)唯一性约束允许在该列上存在NULL值,而主键约束的限制更为严格,不但不允许有重复,而且也不允许有空值。

(2)在创建唯一性约束和主键约束时可以创建聚集索引和非聚集索引,但在 默认情况下主键约束产生聚集索引,而唯一性约束产生非聚集索引

约束和索引, 前者是用来检查数据的正确性,后者用来实现数据查询的优化,目的不同。

唯一性约束与唯一索引有所不同:

(1)创建唯一约束会在Oracle中创建一个Constraint,同时也会创建一个该约束对应的唯一索引。

(2)创建唯一索引只会创建一个唯一索引,不会创建Constraint。

也就是说其实唯一约束是通过创建唯一索引来实现的。

在删除时这两者也有一定的区别:

删除唯一约束时可以只删除约束而不删除对应的索引,所以对应的列还是必须唯一的,

而删除了唯一索引的话就可以插入不唯一的值。

主键约束:列内容不能重复,且不能为空

外键约束:内容必须是所关联主键的值其中的值

空值约束:不能为空

默认约束:当插入时没有赋值,会使用默认值

唯一约束:列的内容都是唯一的,不以重复

检查约束:列的内容必须符合要求。如CHECK (JOB IN(‘Engineer’,’Sales’,’Manager’));

1(SQL 方式) ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY (以","分隔的属性列表)

2( *** 作方式) 在表设计器中选中两个字段再设为主键

以上就是关于数据库中什么是主键,什么是外键全部的内容,包括:数据库中什么是主键,什么是外键、我想知道数据库中设置主键的作用、数据库的主键和外键有什么区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9629867.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存