数据库主键、外键、超键、最左前缀原则
首先看看各种键的定义:
超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
候选键(candidate key):不含有多余属性的超键称为候选键
主键(primary key):用户选作元组标识的一个候选键程序主键
外键(foreign key)如果关系模式R1中的某属性集不是R1的主键,而是另一个关系R2的主键则该属性集是关系模式R1的外键。
结合实例的具体解释:
假设有如下两个表:
学生(学号,姓名,性别,身份证号,教师编号)
教师(教师编号,姓名,工资)
超键:
由超键的定义可知,学生表中含有学号或者身份证号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(身份证号,性别)等。
候选键:
候选键属于超键,它是最小的超键,就是说如果再去掉候选键中的任何一个属性它就不再是超键了。学生表中的候选键为:(学号)、(身份证号)。
主键:
主键就是候选键里面的一个,是人为规定的,例如学生表中,我们通常会让“学号”做主键,教师表中让“教师编号”做主键。
外键:
外键比较简单,学生表中的外键就是“教师编号”。外键主要是用来描述两个表的关系。
另外补充一个最左前缀原则
https://www.cnblogs.com/shuxiaosheng/p/12976922.html
能用的上前缀索引的列上的条件需要是 = < > <= >= in between
这些并且这些条件是并列的且关系使用 and
连接,对于or、!=
等这些不能命中
数据库主键、外键、超键、最左前缀原则相关推荐
- 超键、候选键、主键、外键、联合主键、复合主键
首先看看各种键的定义: 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键(只要有一个键唯一,再随便组其他的键,合起来叫主键) 候选键(candidatekey):不含有多余 ...
- 超键、候选键、主键、外键区别?
超键.候选键.主键区别? 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键. 候选键(candidate key):不含有多余属性的超键称为候选键. 主键(primary ...
- 主键,超键,候选键,外键的含义
主 键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合.一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null). 超 键: 在关系中能唯一标识元组的属性集称为关系模 ...
- 菜鸟学数据库(四)——超键、候选键、主键、外键
这些年的一些经历告诉我,很多初学者搞不清超键.候选键等,被数据库中的各种键搞的一头雾水.下面就跟大家一起聊聊数据库中的那些键. 首先看看各种键的定义: 超键(super key):在关系中能唯一标识元 ...
- 菜鸟学数据库——超键、候选键、主键、外键
目录 首先看看各种键的定义: 结合实例的具体解释: 超键: 候选键: 主键: 外键: 欢迎大家关注我的新书<Spring Boot趣味实战课> 京东 当当 天猫 这些年的一些经历告诉我,很 ...
- 【数据库】主键,超键,候选键,外键区别与联系?
本文为借阅书籍资料,观看他人博客总结得出,欢迎提问: 一. 前期说明 作为一个初学者,很容易搞不清楚主键,候选键等等,数据库中的各种键被搞得云里雾里,本次重点来介绍数据库中的各种键. 二.定义概要 首 ...
- 快速理解数据库超键,候选键,主键
先了解下对这三种关键码的定义如下: 键名 定义 超键 (super key) 在关系中能唯一标识元组的属性或属性集称为关键模式的超键 候选键 (candidate key) 不含有多余属性的超键称为候 ...
- 绝对正确!解释“超键、候选键和主键”之间的关系
超键: 是一组单个或多个键,用于标识表中的行. 候选键: 是一组唯一标识表中元组的属性,可以理解为是一个没有重复属性的超级键,是超键的子集. 主键: 是表中的一个属性或一组属性,用于唯一标识该表中的每 ...
- mysql非主键索引_主键索引和非主键索引的区别
1. 什么是最左前缀原则? 以下回答全部是基于MySQL的InnoDB引擎 例如对于下面这一张表 如果我们按照 name 字段来建立索引的话,采用B+树的结构,大概的索引结构如下 如果我们要进行模糊查 ...
- mysql非主键索引_主键索引和非主键索引解析
1. 什么是最左前缀原则? 以下回答全部是基于MySQL的InnoDB引擎 例如对于下面这一张表 如果我们按照 name 字段来建立索引的话,采用B+树的结构,大概的索引结构如下 如果我们要进行模糊查 ...
最新文章
- pe文件被装入内存时按64k对齐
- 360笔试第一题----最强的不一定是最后的赢家
- 5行Python实现验证码识别,太稳了!
- keycode值列表
- 用matlab进行拉普拉斯滤波,[转载]matlab滤波技术及区域处理---线性滤波
- 桥接命令brctl的用法
- mac无法验证您网络上的打印机,怎么解决?
- vue配置代理服务器proxy
- LT6105电流检测放大器介绍
- 2023年全国最新二级建造师精选真题及答案15
- GetDC与GetWindowDC 的区别
- 超级计算机 人脑,世界第4超级计算机竟被人脑秒成渣,人类的大脑究竟多厉害?...
- 堪称神器的Chrome插件!
- java rar_java如何解压rar文件
- 程序员久坐伤身,站起来,走出去,别回来
- SRI-Subresource Integrity
- 【python爬虫专项(31)】链家二手房源数据采集4(噪声数据处理)
- @resource与@autowired的区别
- 6大常用数据分析模型详解
- vue双向绑定失效赋值失效