前几天把师弟设计的实验室数据库表提交给博士检查,被查出比较多的问题,其中一个问题是没有使用到外键。所以现在来学习一下外键。
什么是外键
+-------+ ref +-------+
| sub | ------> | main |
+-------+ +-------+
从表(sub)的某列引用(ref)主表(main)的某列的值。比如学生表有个学生编号(sid),分数表中的学生列(stu)引用学生表的学号,此时对于分数表的stu 来说,学号就是外键。从表也叫外键表,主表也叫主键表、外表,列也叫字段。
外键的作用
主要有两个:
一个是让数据库自己通过外键来保证数据的完整性和一致性
一个就是能够增加ER图的可读性
为已经添加好的数据表添加外键:
语法:
alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);
例:
alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id)
删除外键
语法: ALTER TABLE table-name DROP FOREIGN KEY key-id;
例: ALTER TABLE `tb_active` DROP FOREIGN KEY `FK_ID`