1.任务:给表添加外码。
2.相关知识
需要掌握:
(1)什么是外码; (2)怎么给表添加外码。
(1)什么是外码
外部关键字
外码是另一张表中的主码。**外码的主要作用是保持数据的一致性,完整性。

如图有两张表,classId 是T_Student的外码,是T_class 表的主键, 如果我们要删除T_class 表中classId为1的字段,会报错的,因为t_student表中有数据和classId为1的字段关联,是不能删除的,这样就保证了数据的一致性和完整性。 **需要先删除T__student表中classId为1的两个字段。
(2)如何给表添加外码
在MySQL中给表中字段添加外键约束的语法规则如下:
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数据库中。
完成创建后,可以使用前面关卡使用过的命令查看表、表结构等,点测评通过即通过闯关。




















