SQL中主键和外键的定义是什么???

 我来答
bisslot
推荐于2018-03-29 · TA获得超过246个赞
知道答主
回答量:193
采纳率:100%
帮助的人:137万
展开全部
关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键
比如
学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键
课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键
成绩表(学号,课程号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键

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

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

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

主键
外键
索引

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

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

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

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

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

聚集索引,在索引页里直接存放数据,而非聚集索引在索引页里存放的是索引,这些索引指向专门的数据页的数据。
狂鸟鵟
2011-11-10 · TA获得超过125个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:111万
展开全部
主键就像身份证号码,用来表示一个东东的;外键的话就是别人的主键,就像一年级一班这是这个班级的主键,你是这个班级的一员,在你的信息中班级一栏是“一年级一班”,在这里的“一年级一班”就是外键了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仦伯
2011-11-09 · TA获得超过1538个赞
知道小有建树答主
回答量:912
采纳率:100%
帮助的人:1226万
展开全部
主键就是确定表中的每一条记录。主键不能是空值。
外键主要用来维护两个表之间数据的一致性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sweetlove彬
2011-11-20
知道答主
回答量:8
采纳率:0%
帮助的人:3.8万
展开全部
关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键
比如
学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键
课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键
成绩表(学号,课程号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键

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

同理 成绩表中的课程号是课程表的外键
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式