很少用到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);
分享到:
相关推荐
1 1 、 e oracle 数据库有 5 5 种约束: :y primary n key,foreign key,unique,check,not null 2 2 、 如果某个约束只作用单独的字段,即可以在列级定义约束;也可以在表 级定义约束。但是如果某个约束作用于多...
Les10 : 约束[NOT NULL / UNIQUE / PRIMARY KEY / FOREIGN KEY / CHECK] Les11 : 视图[CREATE OR REPLACE VIEW empvu80 (id_number, name, sal, department_id) AS ... ] Les12 : 其它数据库对象[序列/索引/私有和...
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;
add constraint fk_roleid foreign key (roleid) references role(role_id) on delete cascad; --下边写主表的列 on delete cascad是创建级联 13.把两个列连接起来 select concat(name,id) from 表名; --把...
外部键约束(Foreign key constraint) 53 延迟约束检验(Deferred Constraint Checking) 54 序列(Sequences) 54 索引(INDEXES) 55 6.Oracle数据库数据对象分析(下) 56 过程和函数 56 包 58 数据字典 60 7.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的表操作–外键约束(foreign key) 八、Oracle的表操作–修改和删除表 九、Oracle的表操作–增删改查 十、Oracle的表操作–事务 十一、Oracle的数据字典 一、Oracle的SQL 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锁的概念 ...
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入门 一、 数据库概述 ...FOREIGN KEY(column1,column2,…..column_n) REFERENCES tablename(column1,column2,…..column...
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. 自关联查询...
自己学习Struts时练习做的... Constraint FK_productID Foreign Key(productID) References PRODUCT_INFO(productID) ); Insert into BOUGHT_PRODUCT(userID,productID,quantity) Values('307002','000001',100); }
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 单行...
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), ...
找工作的技能 j2EE + XML + ORACLE/SQLSERVER 基础 java html javascript sql
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、查看各种...
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 环境:myeclipse6.5+jdk1.5+tomcat5.5+...-- Create/Recreate primary, unique and foreign key constraints alter table APPMENU add constraint PK_APPMENU primary key (APPMENUID);
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 ...
MySQL 的企业级解决方案,高实用性以及强健的数据完整性 MySQL 事务,行级锁定,热备份以及外键支持 - - 无需损失 MySQL 的高速性能 ...InnoDB 是 MySQL 上第一个提供外键约束(FOREIGN KEY constraints)的表引擎。