MySQL-表的连接

1.概述

对于数据库的连接,笔者总结了五种。即:笛卡尔积,隐式链接,内连接,左外连接,右外连接。由于今日编写项目时,两表之间的连接有所生疏,故而总结一下此类语法。

1.1 笛卡尔积

简介:t,p分别是type和product表的表的简称或别名。

/* 笛卡尔积 */
SELECT p.*,t.* FROM product p, TYPE t;

显示结果:
在这里插入图片描述
此内容是臃肿的,没有进行过选择的。product表中的每个选项都与type表中的每个类型均匹配了一遍。

1.2 隐形连接
/*链接查询*/
/*隐形连接*/
/*商品的编号等于类型的主键,条件成立才会放到结果集*/
SELECT p.*,t.* FROM product p, TYPE t WHERE p.`t_id` = t.`t_id`;

显示结果:
在这里插入图片描述
介绍:再此增加了条件约束的查询中,product表中的每个元素均得到了正确的匹配选择。

1.3 内连接
/*内连接*/
/*条件成立才会放到结果集*/
SELECT p.*,t.* FROM product p
INNER JOIN TYPE t
ON p.`t_id` = t.`t_id`;

结果显示:
在这里插入图片描述介绍:效果与隐形连接相同,条件成立才会放出结果集!

1.4 左连接
/*左连接*/
/*左表当作主表,右表匹配左表, 有则放到结果集,没有就用null填充*/
SELECT p.*,t.* FROM product p
LEFT JOIN TYPE t
ON p.`t_id` = t.`t_id`;
1.5 右连接
/*右连接*/
/*右表当作主表,左表匹配右`type`表, 有则放到结果集,没有就用null填充*/
SELECT p.*,t.* FROM product p
RIGHT JOIN TYPE t
ON p.`t_id` = t.`t_id`;
1.6 总结

由于设计的数据库外键的设置,左连接和右连接的显示结果是相同的,无法演示出匹配表数据为空的结果,故未设置相关图片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值