[数据库系统] 一、外键约束 (educoder)

1.任务:给表添加外码。

2.相关知识

        需要掌握:

        (1)什么是外码; (2)怎么给表添加外码。

(1)什么是外码

外部关键字

外码是另一张表中的主码。**外码的主要作用是保持数据的一致性,完整性。

[数据库系统] 一、外键约束 (educoder)_第1张图片

如图有两张表,classIdT_Student的外码,是T_class 表的主键, 如果我们要删除T_class 表中classId1的字段,会报错的,因为t_student表中有数据和classId1的字段关联,是不能删除的,这样就保证了数据的一致性和完整性。 **需要先删除T__student表中classId1的两个字段。

(2)如何给表添加外码

MySQL中给表中字段添加外键约束的语法规则如下:

  1. CONSTRAINT 外键名 FOREIGN KEY (字段名) REFERENCES 主表名(主键名)

 例如:
创建两张表如下,给t_student表添加外键约束,外键为classId,外键名称为fk_stu_class1。


表t_class
字段名称 数据类型 备注
id  INT 班级Id,主键
name VARCHAR(22) 班级名称


表t_student
字段名称 数据类型 备注
id INT 学号,主键
name VARCHAR(22) 学生姓名
classId INT 班级ID,外键
在创建表之前你需要先创建数据库:MyDb,并且将两张表创建在MyDb数据库中。

mysql -uroot -p123123 -h127.0.0.1
create database MyDb;
use MyDb;
create table t_class(
        id int primary key,
        name varchar(22)
);
create table t_student(
        id int primary key,
        name varchar(22),
        classId int,
        constraint fk_stu_class1 foreign key(classId) references t_class(id)
);

educoder:

编程要求

创建两张表如下,给t_student表添加外码约束,外键为dptno,外键名称为fk_stu_depart表t_depart

字段名称 数据类型 备注
dptno INT 专业号,主码
dptname VARCHAR(22) 专业名称

表t_student

字段名称 数据类型 备注
stid varchar(12) 学号,主码
name VARCHAR(22) 学生姓名
dptno INT 所在专业,外码

在创建表之前你需要先创建数据库:TestDb,并且将两张表创建在TestDb数据库中。

完成创建后,可以使用前面关卡使用过的命令查看表、表结构等,点测评通过即通过闯关。

 [数据库系统] 一、外键约束 (educoder)_第2张图片

你可能感兴趣的:(数据库)