mysql外键约束

外键:

经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是字表

外键用来建立主表与从表的关联关系。为两个表的数据建立连接,,约束两个表中数据的一致性和完整性。比如,一个水果摊,只有苹果、
桃子、李子、西瓜等4中水果,那么你选择就只能 选择 苹果 、桃子、李子、西瓜 其他的水果都是不能购买的
(上面也就是说,子表元素只能定义和主表有的元素)

主表删除某条记录时,从表中与之相对应的记录也必须有相应的改变。一个表可以有一个或多个外键,外键可以为空值,若不为空值,
则每一个外键的值必须等于主键的某个值

定义外键时,需要遵守下列规则:

1.主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。
2.必须为主键定义主键
3.主键不能包含空值,但允许在外键中出现的空值
4.外键中列的数目必须和主表的主键中列的数目相同。
5.外键中列的数据类型必须和主表主键中对应列的数据类型相同。

创建表时增加外键的格式:

格式为: constraint 你自己创建的外键名称 foreign key (本表中和父表需要建立联系的字段) references 父表的表名(父表内和字表建立联系的字段)
列:constraint rhh_jx foreign key (sid) references rhh123 (id)

修改表时增加外键的格式:

格式为:alter table 表名 add constraint 你自己创建的外键名称 foreign key (本表中和父表需要建立联系的字段) references 父表的表名(父表内和字表建立联系的字段)
列:
alter table qjx123 add constraint qjx_rhh foreign key (sid) references rhh123(id)

删除外键的格式:

alter table 表名 drop foreign key 外键名称
列:
alter table qjx123 drop foreign key rhh_jx

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值