概述
- 外键约束确保数据的有效性。保证数据的一致性、完整性
- 外键只能引用外表中列的值
- 相关联字段中主键所在的表就是主表,外键所在的表就是从表
语法
在创建表时给字段设置外键
[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…] REFERENCES <主表名> 主键列1 [,主键列2,…] mysql>create table students (id int undesigned frimary key auto_increment not null, ->name varchar(20) not null, ->age tinyint unsigned default 0, ->height decimal(5,2), ->foregien key(name) reference class(name) ->); #创建students表,对其中name字段设置外键约束,其主表为class表,students表中name的数据只能从class表中的name选取。
修改表时添加外键约束
ALTER TABLE <数据表名> ADD CONSTRAINT <外键名> FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>); alter table students add foregien key(name) reference class(name); #给students表中的name列设置外键,students表中name的数据只能从class表中的name选取。
删除外键约束
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>; alter table students drop foregien fk_name; #最后是外键约束名,不是设置外键的字段名
查看外键约束
show create table <表名>; #查看constraint后的内容,就是外键约束名