热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

关系数据库表主键和外键

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

 一、什么是主键、外键:

关系型数据库中的一条记录中有若干个属性,若其中
某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 

比如  

学生表(学号,姓名,性别,班级) 

其中每个学生的学号是唯一的,学号就是一个主键 

课程表(课程编号,课程名,学分) 

其中课程编号是唯一的,课程编号就是一个主键 

成绩表(学号,课程号,成绩) 

成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 
学号和课程号的属性组是一个主键 

  

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

  

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

  

定义主键和外键主要是为了维护关系数据库的完整性,总结一下:

主键是能确定一条记录的唯一标识
,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。 

外键用于与另一张表的关联
。是能确定另一张表记录的字段,
用于保持数据的一致性
。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。二、  主键、外键和索引的区别 收藏

主键、外键和索引的区别?

 

主键

外键

索引

定义:

唯一标识一条记录,不能有重复的,不允许为空

表的外键是另一表的主键外键可以有重复的可以是空值

该字段没有重复值,但可以有一个空值

作用:

用来保证数据完整性

用来和其他表建立联系用的

是提高查询排序的速度

个数:

主键只能有一个

一个表可以有多个外键

一个表可以有多个惟一索引


转自:
http://www.cnblogs.com/longyi1234/archive/2010/03/24/1693738.html


推荐阅读
author-avatar
百合想你511
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有