MySQL外键约束
外键约束有什么用呢?
外键约束即FOREIGN KEY常用于多张表之间的约束
外键是指引用另一个表中的一列或多列,被引用的列应该具有主键约束或唯一性约 束。外键用于建立和加强两个表数据之间的连接。
设置外键约束有两种最基本的方法:
方法一:
先创建一个数据库:
mysql> create database etime0215;
Query OK, 1 row affected (0.01 sec)
创建一个学生表:
mysql> crate table student(
-> name varchar(10) not null,
-> id int primary key,
-> age int,
-> classid int
-> );
向学生表中写入数据:
mysql> insert into student values('lili',18,1),('xixi',19,1),('haha',19,2),('zaza',21,2),('yuanyuan',22,1);
创建班级表:
mysql> create table class(
-> name varchar(10),
-> id int primary key
-> );
向班级表中写入数据:
mysql> insert into class values('java一班',1),('java二班',2);
给学生表设置外键:
mysql> alter table student add constraint fk_student_classid foreign key(classid) references class(id);
这样就给学生表设置了外键,班级表即是他的外键约束
设置外键的格式如下:
ALTER TABLE 从表名 ADD CONSTRAINT 外键名 FOREIGN KEY (从表外键字段) REFERENCES 主表 (主键字段);
方法二:
同样的方法创建教师表和部门表
部门表写入数据:
mysql> create table department(
-> id int primary key,
-> name varchar(10)
-> );
教师表写数据时就设置外键,如下:
mysql> create table teacher(
-> name varchar(10),
-> departmentid int,
-> age int,
-> constraint fk_teacher_departmentid foreign key (departmentid) references department(id)
-> );
设置外键的格式如下:
CONSTRAINT 外键名 FOREIGN KEY (从表外键字段) REFERENCES 主表 (主键字段)