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

主要介绍一下个人对主键(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

量子力学到底神奇在哪里?看完这个,我的认知彻底坍塌了

▲ 点击查看很多朋友应该都看过Facebook创始人扎克伯格给他的女儿讲量子力学的那张照片。扎克伯格在清华大学经济管理学院做演讲时,曾谈到:学习量子力学改变了他的思维方式。到底什么是量子力学?我们生活面对的物质尺度大约是厘米级到千米级之…

python开机号_感知机(python实现)

感知机(perceptron)是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别(取1和-1)。感知机对应于输入空间中将实例划分为两类的分离超平面。感知机旨在求出该超平面,为求得超平面导入了基于误分类的损失函数,利用梯度下…

linux 路由表设置 之 route 指令详解

使用下面的 route 命令可以查看 Linux 内核路由表。 [cpp] view plaincopy# route Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * …

10进制转化为16进制以内的转化

进制转化问题十进制转化为其它进制应该是比较简单的问题,就是一个%和/的问题,模之后再除就ok了 1 int a[1000];2 char c[]{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F};3 int main()4 {5 int m,n,i,t,k;6 printf("十进制数:");7 …

黄老师离开呆了十年的上海

关注我的老朋友都知道,我和一线码农(黄新成)以前是同事,我以前也写过文章说过他的事迹。我们曾经一起共事过一家电商服务公司,每天和千万量级的数据打交道。.NET 圈的朋友想必很多人都看过一线码农写的技术文章&#x…

Shell配置_配置IP

1、setup 打开图形化页面a) 选择网络配置b) 选择设置配置c) 选择第一个网卡2、启动网卡(第一个网卡)vim /etc/sysconfig/network-scripts/ifcfg-eth0将ONBOOT"no"改为ONBOOT"yes"3、重启网络服务service network restart来自为知笔记…

Spring入门5.事务管理机制

Spring入门5.事务管理机制 20131126 代码下载 : 链接: http://pan.baidu.com/s/1kYc6c 密码: 233t 回顾之前的知识,Spring 最为核心的两个部分IoC和AOP,我们已经学习过了,其中IoC是Spring的基础核心,AOP是建立在IoC之上的&#xf…

linux之路由知识之ip route 命令中的疑惑

1.基础知识 1.1 路由 (Routing) 1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小、应…

python怎么执行程序_小鹅通视频怎么下载?用python实现小鹅通视频下载(二)

小鹅通视频怎么下载?用python实现小鹅通视频下载(二)背景上次分享《小鹅通视频怎么下载?用python实现小鹅通视频下载(一)[1]》后,引来了很多人咨询小鹅通视频怎么下载的问题。其实咨询的人大多是不懂python[2]语言的人,也有一部分…

在 Azure Functions 上使用不同的路由前缀

点击上方蓝字关注“汪宇杰博客”原文:Azure Tips and Tricks翻译:汪宇杰导语有时需要使用与 Azure Functions 自动生成的路由前缀不同的路由前缀。例如:https://mynewapimc.azurewebsites.net/api/HttpTriggerCSharp1 在函数名之前使用 api。…

RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总

2019独角兽企业重金招聘Python工程师标准>>> MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka。这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求。下面我列出这些MQ之间的对比数据和资料。 第一部分:Rab…

linux之gdb基本调试命令和使用总结

1、gdb调试命令 描述backtrace(或bt)查看各级函数调用及参数finish连续运行到当前函数返回为止,然后停下来等待命令frame(或f) 帧编号选择栈帧info(或i) locals查看当前栈帧局部变量的值list(或l)列出源代码,接着上次的位置往下列,每次列10行list 行号列出从第几行开…

TMG学习(十一),保护企业内网上网安全

我们知道一个企业如果允许用户上网而且可以任意下载软件,这对于企业来说是非常危险的,用户无法辨别哪些是安全网站哪些网站存在风险,因此一旦用户在恶意网站上下载了软件,导致客户端中毒从而会影响整个企业内部网络,最…

sql跨表查询_跨表更新,看到自己写的SQL像个憨憨

有点 SQL 基础的朋友肯定听过 「跨表查询」,那啥是跨表更新啊?背景项目新导入了一批人员数据,这些人的有的部门名称发生了变化,有的联系方式发生了变化,暂且称该表为t_dept_members, 系统中有另外一张表 t_user_info 记…

iText创建一个含有中文的pdf文档

有朋友问我pdfbox支不支持向pdf文档中写入中文。然后试了好多遍都是有乱码,也找了好多资料没有找到解决办法。 但是在查找资料的过程中发现了另一个处理pdf的开源库iText.官方介绍 http://itextpdf.com/ 在这参考了两篇博客 博客1.pdfbox&iText生成PDF文件格式及…

万字长文 - 解读功能开关 | IDCF

原文:https://martinfowler.com/articles/feature-toggles.html作者:Pete Hodgson译者:冬哥功能开关Feature Toggle(通常也称为功能标志Feature Flag)是一种强大的技术,允许团队在不更改代码的情况下修改系…

linux c之gdb常用断点调试总结

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程 1 、安装GDB sudo apt-get install gdb 2 、怎么打断点 1 、源文件的某一行设置断点 break 行号 2、一个特定的函数设置断点 break 函数名 3、设置条件断点 break 行号 i…