MySql联结的基本使用

联结表

关系表

关系表的设计就是要保证把信息分解成多个表,一类数据一个表;
外键:是某个表的一列,它包含另一个表的主键值,定义了两个表之间的关系;

联结

联结:一种机制,用来在一条select语句中关联表;
注意 1.联结由MySql根据需要建立,存在于查询的执行中;2.仅仅在关系列之中插入合法的数据非常重要。

创建联结

在这里插入图片描述

Where的重要性

联结两个表时,实际上做的工作是将第一个表中的每一行和第二个表中的每一行进行配对;
where是过滤条件;
注意:没有where子句,第一个表之中每行将与第二个表中的每一行进行配对,无论他们在逻辑上是否可以匹配。
应该保证所有联结都有where子句
笛卡尔积:没有联结条件的表关系返回的结果
在这里插入图片描述

内部联结

基于两个表之间的相等测试称为等值联结(equijion),也叫内部联结。
内部联结时可以使用ON而不是Where(尽量使用ON)
在这里插入图片描述

联结多个表

联结的表越多,性能下降越厉害
在这里插入图片描述

高级联结

表别名

表别名时在查询中使用
表别名不会返回到客户机(列别名可以)
在这里插入图片描述

3种其他联结

自联结

自联结经常作为外部语句来替代从相同表中检索数据时使用的子查询语句
在这里插入图片描述

自然联结(使用概率低)

作用:排除返回行之中出现重复,排除多次出现

外部联结

联结之中包含了那些在相关表之中没有关联行的行,称为外部联结
没有 *= 操作符:mysql不支持简化字符*=和 =*的使用,在其他DBMS(数据库管理系统)中很流行
left right:左右外部联结唯一差别就是所关联的表的顺序不同,可以通过颠倒where或from子句之中的表顺序进行互相转换

例子

检测所有客户及订单
在这里插入图片描述在这里插入图片描述

使用带有聚集函数的联结

聚集函数用来汇总数据
在这里插入图片描述

总结

  1. 一般情况使用内部联结,使用外部联结也是有效的;
  2. 保证使用正确联结;
  3. 必须提供联结条件,否则会返回笛卡尔积;
  4. 一个联结可以包含多个表,但是应该进行从简到繁的撰写联结。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值