当前位置 : IT培训网 > Java开发 > Java培训 > 外键约束是什么 解读外键约束特性及作用

外键约束是什么 解读外键约束特性及作用

时间:2018-09-14 14:15:32  来源:电脑培训网  作者:IT培训网  已有:名学员访问该课程
外键约束是什么?外键约束的作用是什么?对于学java的并不陌生,外键约束这一概念让java程序员解决了很多的关键性问题,在此,IT培训网再次给大家解读何为外键约束,外键约束的相关作用是什么?

外键约束是什么?外键约束的作用是什么?对于学java的并不陌生,外键约束这一概念让java程序员解决了很多的关键性问题,在此,IT培训网再次给大家解读何为外键约束,外键约束的相关作用是什么?

外键约束是什么?

外键是构成表与表关联的唯一途径。一个表的外键引用另一个表或自身表的主键,外键所在的表称为从表,外键引用的表称为主表。

创建外键有以下两个途径:

在创建表的时候指定某个列为外键列;

在修改表的时候添加某个列为外键列。

外键有以下特性:

外键必须是另一表或自身表的主键的值;

外键可以重复;

外键可以为空;

一张表中可以有多个外键。

1.创建表时指定外键列

(1)外键的关键词是FOREIGN KEY,创建一个数据库exam,然后在该数据库中先创建一个部门表dept,然后再创建一个员工表emp,如图1-1所示:

外键约束是什么 解读外键约束特性及作用_www.cnitedu.cn

图1-1 创建数据库与表

图1-1中,建立外键的语句如下:

CONSTRAINT 约束名称 FOREIGN KEY(外键列名) REFERENCES 关联表(关联表的主键)

创建emp表的sql语句如下:

CREATE TABLE emp(

empno INT PRIMARY KEY AUTO_INCREMENT,

ename VARCHAR(50),

deptno INT ,

CONSTRAINT fk_emp_dept FOREIGN KEY(deptno) REFERENCES dept(deptno)

语句中,外键列名deptno是指emp表中外键的名称,关联表是dept,关联表的主键名为deptno,与外键名称相同,也可以不同。需要注意的是emp表中引用了dept表的主键,因此创建表时要先创建dept表,再创建emp表,否则会出错。

(2)向dept表中插入记录,如图1-2所示:

外键约束是什么 解读外键约束特性及作用_www.cnitedu.cn

图1-2 dept表记录

(3)emp表的主键是自增长的,因此向emp表中插入记录时可以不用指定主键值,如图1-3所示:

外键约束是什么 解读外键约束特性及作用_www.cnitedu.cn

图1-3 向emp表中插入记录

图1-3中,插入的记录没有提供外键的值,外键的值为null,表明了外键可以为null。

(4)向emp表中插入外键值相同的两条记录,如图1-4所示:

外键约束是什么 解读外键约束特性及作用_www.cnitedu.cn

图1-4 插入外键值相同的记录

图1-4中,张三和李四的部门号相同,表明了外键是可以重复的。

(5)向emp表中插入一条记录,该记录的部门号在部门表中并不存在,如图1-5所示:

外键约束是什么 解读外键约束特性及作用_www.cnitedu.cn

图1-5 插入不存在的外键值

图1-5中,当插入的记录的外键值没有引用dept表中的主键时,插入失败,因此,外键值如果不为空,那么一定要是主表的主键中的任意一个。

2.修改表是指定外键列

修改表时添加外键列的语句如下:

ALERT TABLE 表名

 ADD CONSTRAINT 约束名称 FOREIGN KEY(外键列名) REFERENCES 关联表(关联表的主键);

(1)将emp表删除,重新创建一个emp表,如图1-6所示:

外键约束是什么 解读外键约束特性及作用_www.cnitedu.cn

图1-6 创建无外键的emp表

(2)为emp表添加外键,如图1-7所示:

外键约束是什么 解读外键约束特性及作用_www.cnitedu.cn

图1-7 为表添加外键约束

(3)向emp表中添加一条记录,如图1-8所示:

外键约束是什么 解读外键约束特性及作用_www.cnitedu.cn

图1-8  插入记录

图1-8中,插入一条记录,该记录的外键值为50,而dept表的主键值不存在这个值,因此违反了外键约束,所以插入失败,表明修改表时添加外键约束成功。

外键约束是什么 解读外键约束特性及作用_www.cnitedu.cn

顶一下
(0)
0%
踩一下
(0)
0%

IT培训0元试听 每期开班座位有限.0元试听抢座开始! IT培训0元试听

  • 姓名 : *
  • 电话 : *
  • QQ : *
  • 留言 :
  • 验证码 : 看不清?点击更换请输入正确的验证码

在线咨询在线咨询

温馨提示 : 请保持手机畅通,咨询老师为您
提供专属一对一报名服务。

------分隔线----------------------------
------分隔线----------------------------

推荐内容

相关热点