`
wsql
  • 浏览: 11820864 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

ORACLE foreign key

 
阅读更多

很少用到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约束详解.pdf

    1 1 、 e oracle 数据库有 5 5 种约束: :y primary n key,foreign key,unique,check,not null 2 2 、 如果某个约束只作用单独的字段,即可以在列级定义约束;也可以在表 级定义约束。但是如果某个约束作用于多...

    oracle公司内部的培训资料

    Les10 : 约束[NOT NULL / UNIQUE / PRIMARY KEY / FOREIGN KEY / CHECK] Les11 : 视图[CREATE OR REPLACE VIEW empvu80 (id_number, name, sal, department_id) AS ... ] Les12 : 其它数据库对象[序列/索引/私有和...

    详细oracle笔记1

    alter table table_name add constraint fk_name foreign key (table_column) references key_table_name; 3.使主键或外键失效、生效 alter table table_name disable(enable) constraint key_name;

    Oracle最常用的语句

     add constraint fk_roleid foreign key (roleid)  references role(role_id) on delete cascad; --下边写主表的列  on delete cascad是创建级联 13.把两个列连接起来  select concat(name,id) from 表名; --把...

    Oracle PL/SQL语言初级教程

    外部键约束(Foreign key constraint) 53 延迟约束检验(Deferred Constraint Checking) 54 序列(Sequences) 54 索引(INDEXES) 55 6.Oracle数据库数据对象分析(下) 56 过程和函数 56 包 58 数据字典 60 7.Oracle...

    bbs论坛项目运用SSH框架Oracle数据库编写的一个简单示列项目

    -- Create/Recreate primary, unique and foreign key constraints alter table USERS add constraint PK_USERID primary key (USERID) using index tablespace SYSTEM pctfree 10 initrans 2 maxtrans 255 ...

    第二章:Oracle数据库表的管理

    七、Oracle的表操作–外键约束(foreign key) 八、Oracle的表操作–修改和删除表 九、Oracle的表操作–增删改查 十、Oracle的表操作–事务 十一、Oracle的数据字典 一、Oracle的SQL SQL:结构化查询语言...

    Oracle数据库、SQL

    16.5 references foreign key:外键约束 32 16.6 check:检查约束 34 十七、 事务 35 17.1 transaction 35 17.2定义 35 17.3事务的特性:ACID 35 17.4事务的隔离级别 35 17.5数据库开发的关键挑战 35 17.6锁的概念 ...

    oracle实验报告

    foreign key(deptno) references dept(deptno)); 例2 复制一个与emp表的表结构相同的新空表emp2. 可输入如下命令: SQL>create table emp2 as select * from emp where 1=2; 在命令的where子句中给出1=2,表示条件不...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 ...FOREIGN KEY(column1,column2,…..column_n) REFERENCES tablename(column1,column2,…..column...

    Oracle DBA 参考手册

    FOREIGN KEY约束 60 10.5.3.5. CHECK约束 60 10.5.4. 数据库触发器 60 10.6. 数据库性能优化工具 60 10.7. 常见问题处理 60 10.7.1. 序号生成器 60 10.7.2. 确定Oracle数据库中重复的记录 61 10.7.2.1. 自关联查询...

    Struts1.2+Tomcat5.5网上购物系统

    自己学习Struts时练习做的... Constraint FK_productID Foreign Key(productID) References PRODUCT_INFO(productID) ); Insert into BOUGHT_PRODUCT(userID,productID,quantity) Values('307002','000001',100); }

    oracle数据库笔记

    4.Foreign Key 约束 29 5.Check约束 (最复杂)列级 | 表级 29 第四讲 SQL基本查询 31 一. SQL语句概述 31 1. SQL简介 31 2. SQL分类 31 3. PL/SQL (Procedure Language) 31 二. SQL*Plus 31 1.启动 SQL*Plus 单行...

    api文档查询

    Check,Unique,Primary key,not null,Foreign key)。 示例: create table stu( s_id number(8) PRIMARY KEY, s_name varchar2(20) not null, s_sex varchar2(8), clsid number(8), constraint u_1 unique(s_name), ...

    ORACLE课程设计精编

    找工作的技能 j2EE + XML + ORACLE/SQLSERVER 基础 java html javascript sql

    Oracle事例

    alter table TABLE_NAME add constraint FK_NAME foreign key (TABLE_COLUMN) references KEY_TABLE_NAME; 3.使主键或外键失效、生效 alter table TABLE_NAME disable(enable) constraint KEY_NAME; 4、查看各种...

    Oracle 10g 开发与管理

    4.Foreign Key 约束 29 5.Check约束 (最复杂)列级 | 表级 29 第四讲 SQL基本查询 31 一. SQL语句概述 31 1. SQL简介 31 2. SQL分类 31 3. PL/SQL (Procedure Language) 31 二. SQL*Plus 31 1.启动 SQL*Plus 单行...

    xtree java 异步 树 demo

    xtree java异步加载树demo 环境:myeclipse6.5+jdk1.5+tomcat5.5+...-- Create/Recreate primary, unique and foreign key constraints alter table APPMENU add constraint PK_APPMENU primary key (APPMENUID);

    ESF.Database.Migration.Toolkit.Professional.Edition

    key/foreign key, indexes, auto-increment(serial) and default value will be migrated. When you want to migrate data between two different character-sets(e.g.: UTF8, CP1250 etc) tables, it also ...

    InnoDB 中文参考手册

    MySQL 的企业级解决方案,高实用性以及强健的数据完整性 MySQL 事务,行级锁定,热备份以及外键支持 - - 无需损失 MySQL 的高速性能 ...InnoDB 是 MySQL 上第一个提供外键约束(FOREIGN KEY constraints)的表引擎。

Global site tag (gtag.js) - Google Analytics