主要介绍一下个人对主键(primary key)、外键(foreign key)、候选键(Candidate key)、超键(super key)、references的总结

概念:

主键:用户选择元组标识的一个候选键,主键不允许为空

外键:来描述两个表的关系,外键可为空

超键:能唯一的标识元组的属性集

候选键:不含有多余属性的超键

实例:

假如有以下学生和教师两个表:

Student(student_no,student_name,student_age,student_sex,student_credit,teacher_no)

Teacher(teacher_no,teacher_name,teacher_salary)

超键:Student表中可根据学生编号(student_no),或身份证号(student_credit),或(学生编号,姓名)(student_no,student_name),或(学生编号,身份证号)(student_no,student_credit)等来唯一确定是哪一个学生,因此这些组合都可以作为此表的超键

候选键:候选键属于超键,且是最小的超键,即如果去掉超键组合中任意一个属性就不再是超键了。Student表中候选键为学生编号(student_no),身份证号(student_credit)

主键:主键是候选键中的一个,可人为决定,通常会选择编号来作为表的主键。现分别选取student_no,teacher_no作为Student表,Teacher表的主键

外键:teacher_no为两个表的公共关键字,且是Teacher表的主键,因此teacher_no是Student表的外键,用来描述Student表和Teacher表的关系

--References用法

创建一张Student表:

Create table Student(

student_no number(10) not null,

student_name varchar2(10) not null,

student_age number(4) not null,

student_sex varchar2(4) not null,

student_credit  varchar2(18) not null,

teacher_no number(10) not null,

constraint PK_Student primary key(student_no)      --设置主键

);

创建一张Teacher表:

Create table Teacher(

teacher_no number(10) not null,

teacher_name varchar2(10) not null,

teacher_salary number(10) not null,

constraint PK_Teacher primary key(teacher_no)       --设置主键

);

--创建外键约束

alter table Student add constraint FK_Student_References_Teacher (teacher_no) references Teacher(teacher_no);

转载于:https://www.cnblogs.com/yangyang17/p/6039022.html

Oracle数据库-主键(primary key)、外键(foreign key)、候选键(candidate key)、超键(super key)和references总结...相关推荐

  1. 菜鸟学数据库——超键、候选键、主键、外键

    目录 首先看看各种键的定义: 结合实例的具体解释: 超键: 候选键: 主键: 外键: 欢迎大家关注我的新书<Spring Boot趣味实战课> 京东 当当 天猫 这些年的一些经历告诉我,很 ...

  2. 【数据库】主键,超键,候选键,外键区别与联系?

    本文为借阅书籍资料,观看他人博客总结得出,欢迎提问: 一. 前期说明 作为一个初学者,很容易搞不清楚主键,候选键等等,数据库中的各种键被搞得云里雾里,本次重点来介绍数据库中的各种键. 二.定义概要 首 ...

  3. 超键、候选键、主键、外键、联合主键、复合主键

    首先看看各种键的定义: 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键(只要有一个键唯一,再随便组其他的键,合起来叫主键) 候选键(candidatekey):不含有多余 ...

  4. 主键,超键,候选键,外键的含义

    主 键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合.一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null). 超 键: 在关系中能唯一标识元组的属性集称为关系模 ...

  5. 【图示化】SQL Server概念:超键(码)、候选键(候选码)、主键(主码)、主属性与非主属性、外键

    关系模型概念 字段=属性名,每一行就是一条记录=一个元组,每个单元格就是一个分量, 主键,外键 主码=主键=主关键字 超键(码),候选键 码=超键 超键 (唯一的,可多余) 学号唯一,所以是一个超键 ...

  6. 小菜鸟之Oracle数据库

    1 select * from STUDENT; 2 select * from mark; 3 select * from COURSE; 4 5 select * from teacher; 6 ...

  7. Linux下oracle显示问号,oracle数据库显示问号

    ORACLE 数据库 考试方 式?开卷 ? ?闭卷 ?√? 九江学院 ?郭? 题... oracle数据库基本语法考题_IT认证_资格考试/认证_教育专区.一. 常用查... oracle 数据库期末 ...

  8. oracle 游标 904,如何解决Oracle数据库游标连接超出问题

    如何解决Oracle数据库游标连接超出问题 发布时间:2020-07-21 10:57:35 来源:亿速云 阅读:103 作者:小猪 这篇文章主要讲解了如何解决Oracle数据库游标连接超出问题,内容 ...

  9. oracle数据库连接游标超出,Oracle数据库游标连接超出解决方案

    oracle数据库忽然连不上了,一查是游标数量超了. 1.查看游标数 show parameter open_cursors 2.修改游标数 alter system set open_cursors ...

最新文章

  1. SQL Server 2008还原数据库时出现“备份集中的数据库备份与现有的数据库不同”的解决方法...
  2. oracle索引中丢失in或out参数,oracle 11g给表建触发器错误“索引中丢失 IN 或 OUT 参数:: 1...
  3. 深信服上网管理设备恢复控制台密码
  4. 洛谷P2501数字序列 动态规划
  5. python怎么封装供java调用_python调用第三方java包实例
  6. spring eurake中使用IP注册
  7. 操作系统与操作系统内核
  8. 【数据集】语义分割常用的数据集: Pascal VOC、Cityscape、MSCOCO
  9. 保持健康和快乐的20种方法
  10. 简历上怎样写期望薪资,才能让你面试时工资翻倍?
  11. ollydbg使用心得
  12. cdr CorelDRAW Graphics Suite 2021 (v23.1.0)
  13. layui框架实战案例(8):web图片裁切插件croppers.js组件实现上传图片的自定义截取(含php后端)
  14. python基础学习记录
  15. c语言中的.c文件和.h文件
  16. 使用matlab对输入数据进行卡尔曼滤波
  17. html页面实现打印预览功能,js实现打印、页面设置、打印预览功能
  18. 赢在微点答案专区英语_英语u校园读写2答案unit3,u校园新标准大学英语视听说3单元测试答案搜题公众号...
  19. 安装hadoop1.2集群环境
  20. Navicat连接linux服务器的mysql。

热门文章

  1. Windows 故障转移+Hyper-V 虚机自动迁移高 可用
  2. 面试--跨域--cors
  3. python 中 __name__ 的使用
  4. [MySQL] 分组排序取前N条记录以及生成自动数字序列,类似group by后 limit
  5. 旅游社交网站 游范儿
  6. ASP语言基础之常量的定义方法
  7. word2vec应用场景_word2vec的使用参数解释和应用场景
  8. 强制禁用gitlab的双因子认证:Two-Factor Authentication
  9. spring boot中servlet启动原理
  10. LeetCode 322. Coin Change