浅析Mysql外键

1. 外键的概念

表与表之间是存在关系的,这种我们叫做表关系,一般使用外键去维护。

外键是两表或多表之间建立一个关系,我们将这种关系叫做外键关系。例如:订单 - 用户

2. 外键如何创建

2.1 在创建表的时候创建外键

#super_member
CREATE TABLE `super_member` (
  `id` int(50) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) COLLATE utf8_bin DEFAULT NULL,
  `create` int(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB

#super_order
CREATE TABLE `super_order` (
  `rid` int(100) NOT NULL AUTO_INCREMENT,
  `total` decimal(50,0) DEFAULT NULL,
  `mid` int(11) DEFAULT NULL,
  PRIMARY KEY (`rid`),
  FOREIGN KEY (`mid`) REFERENCES `super_member` (`id`)
) ENGINE=InnoDB

此处创建2个表  分别是 `super_order`  和  `super_member` ,   可以看到 mid 是 super_menber的外键  

此处 需要注意的是:

由于mid建立了外键约束 ,所以super_order 在插入数据的时候 , mid 必须是主表(super_member)中存在ID , 否则就会报错 

2.2 已存在表增加外键

ALTER TABLE super_order ADD FOREIGN KEY products_vendors_fk_1 (mid) REFERENCES super_member (id);

这样外键关系就创建起来了

3. 外键在查询中的使用

SELECT *    FROM  super_member,super_order  where super_member.`id`=1  and  super_member.`id` = super_order.`mid`  ;

结果:

上述查询等价于:

select * from super_member inner join super_order on super_member.id = super_order.`mid` where super_member.id = 1

前者是 隐式内连接查询 ,   后者是  显示内连接查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿John

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值