关系型数据库——主键&外键的
2024-10-19 19:42:32
一、什么是主键、外键:
关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键 成绩表(学号,课程号,成绩) 成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键 成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键 同理 成绩表中的课程号是课程表的外键 定义主键和外键主要是为了维护关系数据库的完整性,总结一下: 主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。 外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。
二、 主键和外键的区别:
|
主键 |
外键 |
定义: |
唯一标识一条记录,不能有重复的,不允许为空 |
表的外键是另一表的主键, 外键可以有重复的, 可以是空值 |
作用: |
用来保证数据完整性 |
用来和其他表建立联系用的 |
个数: |
主键只能有一个 |
一个表可以有多个外键 |
最新文章
- Oracle数据库自动备份SQL文本:Procedure存储过程,View视图,Function函数,Trigger触发器,Sequence序列号等
- 【转】最佳Restful API 实践
- Android处理Bitmap的一些方法
- 设置文字在div中垂直居中,使用line-height
- ftp nfs samba比较
- PHP面向对象编程学习之对象基础
- 闲扯 Javascript 03 时钟和QQ延时框
- JDBC操作数据库的学习(2)
- 【Zookeeper】源码分析之持久化--FileTxnSnapLog
- YII2 添加全局自定义函数
- 一次触摸,Android到底干了啥
- Java内存模型_重排序
- “等一下,我碰!”——常见的2D碰撞检测
- Virtual Memory is deprecated in Redis 2.4
- Django 日志输出及打印--logging
- Jquery中val方法使用的坑
- window.onload和document.ready
- 句柄线程做参数和PostMessage的用法
- 修改weblogic启动模式:client改为server
- Vue.directive基础,在Vue模块开发中使用