sql超键 候选键 主键
超键:如bai果一个关系(表)du中所有属性(列)都由zhi一个属性集合决定,那么这组属性集合称为超键。
显然,由一个关系的所有属性组成的属性集合必然是这个关系的超键。
通俗地讲,超键用来唯一确定一个元组(行,记录)。
候选键:一个可以用来唯一确定一个元组的极小的属性集合,即极小超键。(minimal superkey)
主键:一个关系的所有候选键中选择一个用来唯一确定关系的元组,这个候选键成为主键。
外键:在一个关系中,如果一个属性集合是另一个关系的主键,这个属性集合称为外键。
键bai(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
候选键(candidate key):不含有多余属性的超键称为候选键
主键(primary key):用户选作元组标识的一个候选键程序主键
比如一个小范围的所有人,没有重名的,考虑以下属性
身份证 姓名 性别 年龄
身份证唯一,所以是一个超键
姓名唯一,所以是一个超键
(姓名,性别)唯一,所以是一个超键
(姓名,性别,年龄)唯一,所以是一个超键
--这里可以看出,超键的组合是唯一的,但可能不是最小唯一的
身份证唯一,而且没有多余属性,所以是一个候选键
姓名唯一,而且没有多余属性,所以是一个候选键
--这里可以看出,候选键是没有多余属性的超键
考虑输入查询方便性,可以选择 身份证 为主键
也可以 考虑习惯 选择 姓名 为主键
--主键是选中的一个候选键
sql超键 候选键 主键相关推荐
- 数据库原理与应用(SQL Server)教程 主键、外键以及联合主键、复合主键和设置种子数目和增量
文章目录 前言 一.主键.联合主键和复合主键 (一)主键 (二)联合主键 (三)复合主键 二.外键.设置种子数目和增量 (一)外键的概念 (二)添加外键 (三)设置种子数目和增量 结语 前言 这篇文章 ...
- sql主键_SQL主键
sql主键 In a world driven with data all over, it is very easy to get duplicate data. The nightmare of ...
- SQL Server中如何给主键添加主键约束
SQL Server中如何给主键添加主键约束? 方法/步骤 1 SQL Server中如何给表添加主键约束,下面为大家分享了两种方法希望大家能够速学速懂. 2 3 在如下图中大家可以看到的是一个Stu ...
- sql 复合主键 联合主键_学习SQL:主键
sql 复合主键 联合主键 If you've already worked with databases, then you could hardly miss the term – Primary ...
- sql新增数据返回主键
sql新增数据返回主键 @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id&quo ...
- mybatis使用statement.getGenreatedKeys(); useGeneratedKeys=”true”;使用自增主键获取主键值策略和Oracle不支持自增,Oracle使用序列
parameterType: 参数类型, 可以省略 mysql支持自增主键,自增主键的获取, mybatis也是利用statement.getGenreatedKeys(); useGenerate ...
- mysql主键long_MySQL主键设计
[TOC] 在项目过程中遇到一个看似极为基础的问题,但是在深入思考后还是引出了不少问题,觉得有必要把这一学习过程进行记录. MySQL主键设计原则 MySQL主键应当是对用户没有意义的. MySQL主 ...
- python字典添加主键_Python--MySql(主键的创建方式、存储引擎、存储过程、索引、pymsql)...
主键的创建方式 1. create tablestud( idint not null unique, namevarchar(20) ); mysql> descstud;+-------+- ...
- oracle主键约束删除,oracle删除主键查看主键约束及创建联合主键
oracle删除主键查看主键约束及创建联合主键 1,主键的删除 ALTER TABLE TABLENAME DROP PRIMARY_KEY 执行上面的SQL可以删除主键:如果不成功可以用 ALTER ...
最新文章
- Atitit hsv转grb 应该优先使用hsv颜色原则 方便人类
- 优化网站设计方案提升网站用户回头率
- javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplicati
- Exception while invoking! org.apache.thrift.protocol.TProtocolException: Bad version in readMessageB
- 使用ASP.NET Core MVC的Vue.Js
- 零基础带你学习MySQL—自连接(二十一)
- HTTP Gzip压缩问题总结
- Android Metro风格的Launcher开发系列第一篇
- html 调用离线地图,百度地图API1.1制作的离线地图控件(html+webbroswer)
- 计算机格式化后,电脑格式化后需要重装系统吗_格式化电脑重装系统的方法步骤...
- Echarts16 ---散点图-趋势图
- php怎么弄面包屑,php实现面包屑导航例子分享
- 微软office认证课程
- 什么是库存周转率周转天数?
- 小试牛刀 python股票查询程序
- android webview问题汇总
- 基于Linux的tty架构及UART驱动详解
- 嵌入式Linux永久修改MAC和IP(特别适用多个网卡设计)
- 常用的 CSS 长度单位
- java做物理引擎_不使用物理引擎,自己动手做真实物理的模拟投篮游戏