MySQL学习笔记——连接查询

概述

  • 含义:又称多表查询,当查询的字段来自于多个表的时候,就会用到连接查询

笛卡尔乘积现象

  • 例如表1有m行,表2有n行,结果有m*n行,这种现象就叫做笛卡尔乘积现象
  • 发生原因:没有添加有效的连接条件
  • 如何避免:添加有效的连接条件

连接查询的分类

  • 按年代分类
    • sql92标准(即1992年推出的标准):MySQL中仅仅支持内连接
    • sql99标准(即1999年推出的标准):MySQL中支持内连接外连接仅支持左外和右外连接)以及交叉连接
  • 按功能分类:
    • 内连接:
      • 等值连接
      • 非等值连接
      • 自连接
    • 外连接:
      • 左外连接
      • 右外连接
      • 全外连接
    • 交叉连接

各种连接方式举例(MySQL)

等值连接

特点

  • 多表等值连接的结果为多表的交集部分
  • n个表连接,至少有n-1个连接条件
  • 多表的顺序没有要求
  • 一般需要为表取别名
  • 可以搭配之前学过的所有查询子句来使用,比如分组、排序、筛选等等

简单举例

  • 查询女神名对应的男神名(女生男朋友的名字)
    在这里插入图片描述
    在这里插入图片描述
  • 查询员工名对应的部门名
    在这里插入图片描述
    在这里插入图片描述

为表起别名

  • 好处
    • 提高语句的简洁度
    • 区分多个重名的字段
  • 如果为表起了别名,则查询的字段就不能使用原来的表名去限定
  • 查询员工名、工种号、工种名
    在这里插入图片描述
    在这里插入图片描述

添加筛选条件

  • 查询有奖金的员工名和部门名
    在这里插入图片描述
    在这里插入图片描述
  • 查询城市名中第二个字符为o的部门名和城市名
    在这里插入图片描述
    在这里插入图片描述

添加分组条件

  • 查询每个城市的部门个数
    在这里插入图片描述
    在这里插入图片描述
  • 查询有奖金的每个部门的部门名和部门的领导编号和该部门的最低工资
    在这里插入图片描述
    在这里插入图片描述

添加排序

  • 查询每个工种的工种名和员工的个数,并且按员工的个数降序
    在这里插入图片描述
    在这里插入图片描述

实现三表连接

  • 查询员工名、部门名和所在的城市
    在这里插入图片描述
    在这里插入图片描述

非等值连接

  • 与等值连接基本相同,只不过连接条件不再是等式,而是不等式
  • 查询员工的工资和工资水平
    • 员工的工资水平如下表
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

自连接

  • 自连接与等值连接和非等值连接的区别就是,其他两种内连接方式都涉及到多个表,而自连接只涉及到一个表
  • 查询员工名以和他上级的名称
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值