很少用到foreign key ,网上找的资料研究下:

foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,能够让表与表之间的数据,更加的完整,关连性更强。

二,外键维护数据完整性的5种方式

1,CASCADE: 从父表删除或更新且自动删除或更新子表中匹配的行。ON DELETE CASCADE和ON UPDATE CASCADE都可用。在两个表之间,你不应定义若干在父表或子表中的同一列采取动作的ON UPDATE CASCADE子句。

2,SET NULL: 从父表删除或更新行,并设置子表中的外键列为NULL。如果外键列没有指定NOT NULL限定词,这就是唯一合法的。ON DELETE SET NULL和ON UPDATE SET NULL子句被支持。

3,NO ACTION: 在ANSI SQL-92标准中,NO ACTION意味这不采取动作,就是如果有一个相关的外键值在被参考的表里,删除或更新主要键值的企图不被允许进行(Gruber, 掌握SQL, 2000:181)。 InnoDB拒绝对父表的删除或更新操作。

4,RESTRICT: 拒绝对父表的删除或更新操作。NO ACTION和RESTRICT都一样,删除ON DELETE或ON UPDATE子句。(一些数据库系统有延期检查,并且NO ACTION是一个延期检查。在MySQL中,外键约束是被立即检查的,所以NO ACTION和RESTRICT是同样的)。

5,SET DEFAULT: 这个动作被解析程序识别,但InnoDB拒绝包含ON DELETE SET DEFAULT或ON UPDATE SET DEFAULT子句的表定义。

----------------------------------------------------

1、创建表 CREATE TABLE students  (   student_id    VARCHAR2(10) NOT NULL,   student_name  VARCHAR2(30) NOT NULL,   college_major VARCHAR2(15) NOT NULL,   status        VARCHAR2(20) NOT NULL,   state         VARCHAR2(2),   license_no    VARCHAR2(30)   ); 2、创建主键 ALTER TABLE students   ADD CONSTRAINT pk_students   PRIMARY KEY (student_id) USING INDEX ; 3、创建Unique约束 ALTER TABLE students   ADD CONSTRAINT uk_students_license   UNIQUE (state, license_no) USING INDEX ; 4、创建Check约束 ALTER TABLE students ADD CONSTRAINT ck_students_st_lic    CHECK ((state IS NULL AND license_no IS NULL) OR           (state IS NOT NULL AND license_no is NOT NULL)); 5、创建外键约束 ALTER TABLE students   ADD CONSTRAINT fk_students_state   FOREIGN KEY (state) REFERENCES state_lookup (state);

oracle foreign 查询,ORACLE foreign key相关推荐

  1. oracle数据类型查询,Oracle 空间查询, 数据类型为 sdo_geometry

    数据:通过arcgis直连数据库,导入测试数据,导入时数据类型选择SDO_GEOMETRY. 测试数据包含点线面,点数据MAP_USER_POINT, 线数据MAP_USER_LINE,面数据MAP_ ...

  2. oracle if查询,Oracle条件查询

    Oracle条件查询 条件查询需要用到where语句,where必须放到from语句表的后面. 支持如下运算符 运算法 说明 = 等于 <>或!= 不等于 < 小于 <= 小于 ...

  3. 银行使用oracle做查询,Oracle EBS ERP银行信息查询视图

    Oracle EBS ERP银行信息查询视图 CREATE OR REPLACE VIEW XXX_STD_CE_BANKINFO_V AS SELECT cbau.org_id, cba.accou ...

  4. 怎样学好Oracle子查询,Oracle学习(六):子查询

    Oracle学习(6):子查询 子查询 为何要用子查询 SQL> --查询工资比SCOTT高的员工信息 SQL> --1. 知道SCOTT的工资 SQL> select sal fr ...

  5. oracle 闪查询,Oracle的回闪查询

    从oracle9i开始,oracle开始提供回闪查询特性(flashback query),允许将回滚段中的数据进行回闪,通过下面的例子来看一下这个从orac Oracle回闪查询的新特性 从orac ...

  6. oracle hwm 查询,oracle HWM

    Oracle表段中的高水位线HWM : 在Oracle数据的存储中,可以把存储空间想象为一个水库,数据想象为水库中的水. 水库中的水的位置有一条线叫做水位线,在Oracle中,这条线被称为高水位线(H ...

  7. oracle hwm 查询,Oracle HWM( High Water Mark)

    Oracle HWM( High Water Mark) 1.什么是HWM 注意:此部分内容请先了解oracle物理结构和逻辑结构 顾名思义,这是一条水位线,oracle的每一个对象都是一个segem ...

  8. oracle hwm 查询,Oracle中的HWM

    1.什么是高水位线(High Water Mark) 对于一个段(逻辑上其实可以说一个表),有一个段里容纳数据的上限,这个上限就是高水位线.通常这个HWM只会增加不会减少,因为它记录的是存储数据最多时 ...

  9. oracle阻塞查询,oracle 查询阻塞的sql语句

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 session1: create table t_all_objs as select owner,object_id,object_name from ...

最新文章

  1. BZOJ.4247.挂饰(背包DP)
  2. 视频在计算机中的存储
  3. 34岁回顾人生,也怕中年危机!
  4. 二叉树层序遍历(广度优先搜索)基础概念与经典题目(Leetcode题解-Python语言)
  5. 8g可用 安装内存16g_同样是16g内存,为啥都选两条8G,不选16G单条,这难道有啥讲究?...
  6. oracle数据库实例关闭步骤,Oracle 数据库实例起动关闭过程
  7. Sentinel服务熔断无配置_客户自定义限流处理_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0049
  8. NSTimer 的用法
  9. Windows下Hadoop eclipse开发平台搭建
  10. 监控某个dll被修改_浅谈动力环境监控系统技术标准
  11. IDEA+MAVEN+testNG(reportNG)
  12. go语言中map+stuct结构体是常用的组合
  13. layer.open中使用时间控件laydate失败不显示的解决方案
  14. 四川大学转专业计算机条件,四川大学转专业需要什么条件
  15. STM32F303VCT6(数据表) ARM Cortex M4,微控制器
  16. 微信小程序创建过程(具体步骤)
  17. YGG 与 StemsDAO 达成合作,为全球音乐创作者提供支持
  18. 谷歌colab平台简单使用及读取自己的数据集
  19. 手机总是显示服务器太忙,手机总提示服务器太忙请稍后重试
  20. 阿里云【云计算7天实践训练营】新人路线-class6学习笔记

热门文章

  1. 检查点和oracle数据库的恢复(一)SCN
  2. IBM DB2 Intelligent for Data/Text Version 6
  3. 计算机应用基础 制作表格说课稿,职业教育:计算机应用基础类一等奖作品《Premiere视频制作初体验》说课稿.docx...
  4. css修改span位置_简历完善,CSS布局与定位,笔记
  5. windows安装anaconda 报错failed to create anacoda menu ?
  6. devops_您无法购买DevOps
  7. 第三十一章 考试作弊
  8. react滑动切换tab动画效果_后端设计中,如何用axure实现table切换动效?
  9. 视觉SLAM笔记(31) 特征提取和匹配
  10. 订单编号的数据类型是什么_领域模型与代数数据类型(第三期)