SQL编程:外键约束

外键(foreign key)

一个表中的foreign key指向另一个表中的unique key(唯一约束的键)

对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表,外键所在的表就是从表(子表)。

外键约束

foreign key约束用于预防破坏表之间连接的行为,也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。【主要目的是确保表的数据的完整性,唯一性】

主表删除某条记录时,从表中与之对应的记录也必须有相应的改变。一个表可以有一个或者多个外键,外键可以为空值,若不为空值,则每一个外键的值必须等于主表中主键的某个值。

定义外键时,需要遵守下列规则:

  • 主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。
  • 必须为主表定义主键。
  • 主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。
  • 在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。
  • 外键中列的数目必须和主表的主键中列的数目相同。
  • 外键中列的数据类型必须和主表主键中对应列的数据类型相同。

上段截取自http://c.biancheng.net/view/2441.html

实例:

题目描述

在audit表上创建外键约束,其emp_no对应employees_test表的主键id。(以下2个表已经创建了)

1

2

3

4

5

6

7

8

9

10

11

12

CREATE TABLE employees_test(

ID INT PRIMARY KEY NOT NULL,

NAME TEXT NOT NULL,

AGE INT NOT NULL,

ADDRESS CHAR(50),

SALARY REAL

);

 

CREATE TABLE audit(

EMP_no INT NOT NULL,

create_date datetime NOT NULL

);

方法一:创建表时添加外键约束。

 

drop table audit;
create table audit
(
    emp_no int not null,
    create_date datetime not null,
    foreign key(emp_no)
    references employees_test(id)
);

方法二:在修改表时添加外键约束,采用alter语句。

语句结构:

alter table table_nm add constraint constraint_name
foreign key table_a(col) references table_b(col);
alter table audit
add constraint 
fk_emp_no
foreign key
audit(emp_no)
references 
employees_test(id);

删除外键约束语法格式:

ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;

 

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值