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_productsadd 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)用法详解(一)相关推荐

  1. Oracle之主键(Primary Key)用法详解

    工作中用的数据库是Oracle,建表是说用复合主键,博主不是很懂啊(主键还有复合主键),才发现主键这块很是薄弱,查完资料,特写一篇博客记录一下. 什么是主键 主键(primary key)是表中的一个 ...

  2. Oracle之外键(Foreign Key)使用方法具体解释(二)- 级联删除(DELETE CASCADE)

    Oracle外键(Foreign Key)之级联删除(DELETE CASCADE) 目标 演示样例解说怎样在Oracle外键中使用级联删除 什么是级联删除(DELETE CASCADE)? 级联删除 ...

  3. mysql 外键(foreign key)的详解和实例_MySQL数据库外键

    设置外键 外键及功能:成绩表(参照表也叫子表)中的学号来自学生表(被参照表也叫父表),成绩表中的课程号来自课程表:当要删除或更新被参照表中的给字段的值时,参照表该字段的值如何改变.在on delete ...

  4. Oracle中游标Cursor基本用法详解

    这篇文章主要介绍了Oracle中游标Cursor基本用法详解,还是比较全面的,具有一定参考价值,需要的朋友可以了解下. 查询 SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT ...

  5. 数据库之外键foreign key

    数据库之外键foreign key 如果一个实体的某个字段指向另一个实体的主键,就称为外键. 被指向的实体,称之为主实体(主表),也叫父实体(父表). 负责指向的实体,称之为从实体(从表),也叫子实体 ...

  6. Oracle之唯一性约束(UNIQUEConstraint)用法详解

    Oracle | PL/SQL唯一索引(Unique Constraint)用法 1 目标 用示例演示如何创建.删除.禁用和使用唯一性约束. 2 什么是唯一性约束? 唯一性约束指表中一个字段或者多个字 ...

  7. oracle clob 写入mongo,【Oracle】Varchar2/Blob/Clob用法详解

    数据库中提供了三种字段类型Varchar2.Blob和Clob用于存储字符串或二进制数据,其中Varchar2.Clob用于存储字符串数据,而Blob用于存储二进制数据. Varchar2采用单字节存 ...

  8. oracle的substr函数用法,Oracle的substr函数简单用法详解

    substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H'  *从字符串第一个字符开始截取长度为1的字符串 subst ...

  9. Mysql完整性约束详解(字段唯一,非空,主键primary key,外键foreign key,自增长auto_increment)

    引入 1.什么是完整性约束, 为什么使用 为了规范数据格式, 在用户进行插入.修改.删除等操作时,DBMS(数据库管理系统(Data Base Management System))自动按照约束条件对 ...

最新文章

  1. 【C++】18.char[] 与 string 的区别 与 互相转化、c_str() 函数用法
  2. cocos2d-x初探学习笔记(20)--物理引擎box2d(2)
  3. python3 在线工具_Curl转python在线工具
  4. Java中Integer与String类型互转
  5. EXCEL怎么按照数字大小排列
  6. comsol 裂隙 耦合_使用COMSOL建立多重连续介质渗流模型
  7. 【软件工程】软件工程需求分析——结构化分析
  8. 安卓手机解锁密码忘了如何解锁
  9. java获取虎牙直播弹幕消息,虎牙直播弹幕筛选器
  10. 西电计算机学院通知,西安电子科技大学计算机科学与技术学院关于发放2020级硕士研究生正式录取通知书的通知...
  11. 牛客小白月赛7 谁是神箭手
  12. ArcGIS教程:解决裁剪功能输出的数据集为空的情况。
  13. Android 蓝牙开发——蓝牙连接(六)
  14. 数据库查询结果去重常用方法整理
  15. JFIF-JPEG文件
  16. 前后分离与不分离的区别
  17. SQLServer查询筛选后的结果集
  18. ないで与なくて的异同
  19. 山西省计算机专业的专科排名,2021年山西十大专科学校排名 山西最好的高职院校...
  20. 基于汇编和C语言STM32流水灯依次闪烁

热门文章

  1. 如何让centos7虚拟机联网
  2. 打印机常见问题故障之经验总结
  3. 为什么UI设计师比平面设计师工资高?
  4. Android学习提纲
  5. 基于php003飞机票航空售票查询预定系统-计算机毕业设计
  6. java在指定项目下创建目录_在指定目录创建文件 Java代码
  7. Day 58 shell脚本命令
  8. 【Nginx】如何查看nginx版本
  9. 微信如何实现自动跳转到用其他浏览器打开指定页面
  10. windows 7 下安装windows 8