Oracle的表操作——外键约束

1、外键约束:外键(foreign key)是用来建立和加强两个表数据之间的连接的一列或多列。外键约束是唯一涉及两个表关系的约束。

注:先创建的表叫主表或附表,后创建的且和主表有关系的表叫从表或子表

2、外键约束的注意事项:

(1)、设置外键约束时主表的字段必须是主键列(或唯一列)

(2)、主从表中相应字段必须是同一数据类型

(3)、从表中外键字段的值必须来自主表中的相应字段的值,或者为NULL

3、创建表时设置外键约束的方法

(1)、列级约束:create table 从表 ( column_name datatype references 主表 ( column_name) [ on delete cascade ],...);

例:

主表:

create table department(

                                             depid varchar2(10) primary key,

                                             depname varchar2(30)

                                            );

子表:

create table student(

                                      sid number(8,0),

                                       name varchar2(20),

                                       sex char(2),

                                       birthday date,

                                       address varchar2(50),

                                        depid varchar2(10) references department(depid)

                                    );

注:子表中的depid可以随意取名

(2)、表级约束:constraint constraint_name foreign key ( column_name ) references 主表 ( column_name) [ on delete cascade]

例:

主表:

create table department(

                                             depid varchar2(10) primary key,

                                             depname varchar2(30)

                                            );

子表:

create table student(

                                      sid number(8,0),

                                       name varchar2(20),

                                       sex char(2),

                                       birthday date,

                                       address varchar2(50),

                                       constraint fk_depid foreign key(depid) references department(depid) on delete cascade

                                    );

4、修改表时添加外键约束的方法:alter table  student add constraint fk_depid foreign key(depid) references department(depid) on delete cascade;

5、删除外键约束的方法:

(1)、禁用约束:alter table  table_name disable constraint column_name;

(2)、彻底删除:alter table table_name drop constraint column_name;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值