SQL中主键和外键的定义是啥???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中主键和外键的定义是啥???相关的知识,希望对你有一定的参考价值。

关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键
比如
学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键
课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键
成绩表(学号,课程号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键

成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键

同理 成绩表中的课程号是课程表的外键

定义主键和外键主要是为了维护关系数据库的完整性,总结一下:
主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。二、 主键、外键和索引的区别 收藏主键、外键和索引的区别?

主键
外键
索引

定义:
唯一标识一条记录,不能有重复的,不允许为空
表的外键是另一表的主键, 外键可以有重复的, 可以是空值
该字段没有重复值,但可以有一个空值

作用:
用来保证数据完整性
用来和其他表建立联系用的
是提高查询排序的速度

个数:
主键只能有一个
一个表可以有多个外键
一个表可以有多个惟一索引

聚集索引和非聚集索引的区别?

聚集索引一定是唯一索引。但唯一索引不一定是聚集索引。

聚集索引,在索引页里直接存放数据,而非聚集索引在索引页里存放的是索引,这些索引指向专门的数据页的数据。
参考技术A 主键就像身份证号码,用来表示一个东东的;外键的话就是别人的主键,就像一年级一班这是这个班级的主键,你是这个班级的一员,在你的信息中班级一栏是“一年级一班”,在这里的“一年级一班”就是外键了。 参考技术B 主键就是确定表中的每一条记录。主键不能是空值。
外键主要用来维护两个表之间数据的一致性。
参考技术C 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键
比如
学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键
课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键
成绩表(学号,课程号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键

成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键

同理 成绩表中的课程号是课程表的外键

数据库中,主键是不能重复,唯一的,请问外键是否也不能重复的??

一个表的外键是另一个表的主键,表示两个表的联系。
比如a,b是两个表。a的外键是b的主键(a中的某一列是b的主键)。这个外键就表示了a,b之间的关系。
这个外键在a中是可以重复的,但是在b中由于是主键所以不能重复。
参考技术A 其实,不论是程序参数的定义或者数据库字段的设置,都是一样的
因为,参数或者数据字段都是一个定义值
我们在页面上显示,就是要告诉数据库指定显示那个
如果重复,名字都一样,就像一个班中有几个人都叫一个名字,那就老师点名也就不会知道到底说的是那个了。

以上是关于SQL中主键和外键的定义是啥???的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 中的“键”是啥意思?主键和外键是啥?

数据库中主键和外键是干嘛用的?

数据库中主键和外键的作用?

数据库中主键和外键是干嘛用的?

数据库里面的主键和外键及候选键是啥意思啊?

SQL数据库的、外键和查询