Oracle外键(Foreign Key)使用详细的说明(一)
Oracle外键(Foreign Key)使用详细的说明(一)
1.目标
演示如何Oracle使用外键数据库
2.什么是外键?
1)在Oracle数据库中,外键是用来实现參照完整性的方法之中的一个。打个形象的比喻。外键是指定义外键的表的列的值必须在还有一个表中出现。
2)被參照的表称之为父表(parent table),创建外键的表称之为子表(child table)。子表中的外键关联了父表中的主键。
3)外键能够在创建表时定义或者通过ALTER TABLE语句创建。
3.创建表时定义外键
语法:
CREATE TABLE table_name
(
column1 datatype null/not null,
column2 datatype null/not null,
... CONSTRAINT fk_column FOREIGN KEY (column1,column2,... column_n) REFERENCES parent_table (column1,column2,...column_n)
);
演示样例1:基于单列的外键
create table tb_supplier
(
supplier_id number not null,
supplier_name varchar2(50) not null,
contact_name varchar2(50),
CONSTRAINT pk_supplier PRIMARY KEY (supplier_id)
); create table tb_products
(
product_id number not null,
product_name varchar2(100),
supplier_id number not null,
constraint fk_products_supplier foreign key (supplier_id) references tb_supplier(supplier_id)
);
演示样例2:基于多列的外键
drop table TB_PRODUCTS;
drop table TB_SUPPLIER; create table tb_supplier
(
supplier_id number not null,
supplier_name varchar2(50) not null,
contact_name varchar2(50),
CONSTRAINT pk_supplier PRIMARY KEY (supplier_id,supplier_name)
); create table tb_products
(
product_id number not null,
product_name varchar2(100),
supplier_name varchar2(50),
supplier_id number not null,
constraint fk_products_supplier foreign key (supplier_id,supplier_name) references tb_supplier(supplier_id,supplier_name)
);
4.使用ALTER TABLE命令创建外键
语法:
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
FOREIGN KEY (column1, column2,...column_n)
REFERENCES parent_table (column1,column2,...column_n);
演示样例:
drop table TB_PRODUCTS;-------------------------------------------------------------------------------------------------------------------
drop table TB_SUPPLIER; create table tb_supplier
(
supplier_id number not null,
supplier_name varchar2(50) not null,
contact_name varchar2(50),
CONSTRAINT pk_supplier PRIMARY KEY (supplier_id,supplier_name)
); create table tb_products
(
product_id number not null,
product_name varchar2(100),
supplier_name varchar2(50),
supplier_id number not null
); --使用alter table创建外键
alter table tb_products
add constraint fk_products_supplier
foreign key (supplier_id,supplier_name)
references tb_supplier(supplier_id,supplier_name);
假设您们在尝试的过程中遇到什么问题或者我的代码有错误的地方。请给予指正,很感谢!
联系方式:david.louis.tian@outlook.com
版权@:转载请标明出处!
--------------------------------------------------------------------------------------------------------------------
版权声明:本文博主原创文章,博客,未经同意不得转载。
Oracle外键(Foreign Key)使用详细的说明(一)的更多相关文章
- 数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)
1. 数据库有六大约束 主键(primary key) 外键(foreign key):被参照的键必须有唯一约束或是主键 非空(not null) 默认(default) 检查(check):orac ...
- Oracle之外键(Foreign Key)使用方法具体解释(二)- 级联删除(DELETE CASCADE)
Oracle外键(Foreign Key)之级联删除(DELETE CASCADE) 目标 演示样例解说怎样在Oracle外键中使用级联删除 什么是级联删除(DELETE CASCADE)? 级联删除 ...
- MYSQL外键(Foreign Key)的使用
在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束.外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持): ...
- MySQL建立外键(Foreign Key)
如果在最初建立表的时候就建立外键这样一般不会有什么问题,顺便说一下建立外键的时候,需要注意的地方. cascade方式在父表上update/delete记录时,同步update/delete掉子表的匹 ...
- 组合外键(FOREIGN KEY)
一张表,它的外键即是参考另一张表的主键,但这些关联键是组合键,由2列或多列组成. 你可以先看看这篇<多列组合为主键(PRIMARY KEY)>https://www.cnblogs.com ...
- Oracle主键(Primary Key)使用详细的说明
Oracle/PLSQL: 主键(Primary Key)说明 1 目标 通过演示样例解说怎样创建.删除.禁用和开启主键. 2 前言之-什么是主键 在Oracle中,主键指能唯一标识一条记录的单个数据 ...
- 外键(foreign key)的使用及其优缺点
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键.由此可见,外键表示了两个关系之间的相关联系.以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表. ...
- Oracle外键不加索引会引起死锁问题
转载链接:http://www.jb51.net/article/50161.htm 这篇文章主要介绍了Oracle外键不加索引引起死锁的情况及解决,需要的朋友可以参考下 --创建一个表,此表作为子表 ...
- mysql 约束条件 外键 forigen key 介绍
外键 forigen key作用 :建立表之间的关系 什么是外键 员工信息表有这些字段:id号 姓名 性别 员工所在部门名 部门描述信息 公司有3个部门,但是有1个亿的员工,那意味着 员工所对应的部 ...
随机推荐
- 一场刺激的游戏——很文艺的山东省第四届ACM赛总结(菜鸟版)
人生就像一个个节点,节点中或许有成功,失败,满足,遗憾,但是只要它是不可复制的,在日后,便是美好. ...
- 使用gdb调试游戏服务器
前言 谈论gdb重要性 一般来说.提gdb,命令用于调试."命令",用户是几乎相同的复杂话.而事实确实如此,实际的开发调试必须用到gdb. 如今.大多数Linux系统是存在于ser ...
- timesten升级
ttIsql "DSN=ttwind;UID=cacheuser;PWD=cacheuser;OraclePWD=cacheuser;" --1.查看当前版本号 Command&g ...
- Java 螺纹第三版 第一章Thread介绍、 第二章Thread创建和管理学习笔记
第一章 Thread导论 为何要用Thread ? 非堵塞I/O I/O多路技术 轮询(polling) 信号 警告(Alarm)和定时器(Timer) 独立的任务(Ta ...
- [Android学习笔记]Canvas的使用
Canvas文档 http://developer.android.com/training/index.html 在绘制view时候,重写onDraw(canvas)方法,可能需要在canvas上绘 ...
- [Android代码阅读]分类简介
分类简介: 阅读他人的代码,可以学到很多东西,从思路,到方案,一系列都可以在项目代码中体现,所以,此分类专门用于记录阅读过的项目代码,并在上面给出自己的理解和注释 在此,感谢原作者开源分享项目代码
- 小猪的Android入门之路 day 1
小猪的Android入门之路 Day 1 Android相关背景与开发环境的搭建 ------转载请注明出处:coder-pig 本节引言: 随着社会经济的发展,移动互联网的越来越热,手机APP开发显 ...
- 【编程之美】java二进制实现重建
package com.cn.binarytree.utils; /** * @author 刘利娟 liulijuan132@gmail.com * @version 创建时间:2014年7月20日 ...
- IOS-UITextField-邮箱后缀联想赛
最近做的项目,有一个函数,百度了一下 结果没 要研究了一下. 当用户输入邮箱形式的账号时,输入完"@"符号后.联想出经常使用的邮箱 点击某一行,将改行代表邮箱自己主动输入到账号输入 ...
- 怎样处理iOS 5与iOS 6的 low-memory
移动设备终端的内存极为有限,应用程序必须做好low-memory处理工作,才能避免程序因内存使用过大而崩溃. low-memory 处理思路 通常一个应用程序会包含多个view controllers ...