mysql:数据库:连接查询

   连接查询: 可以将存在引用关系的表通过语法将各个表中的数据汇总到一个结果集中
   连接查询分类:
      1. 内连接查询
    关键字: inner join
    主表位置: 关键字左侧
    查询方式: 以主表数据为基础, 根据连接条件, 到副表中匹配数据
    匹配的次数: 1次
    结果集的形成方式: 只会将匹配成功时的主表和副表数据同时放入结果集
      2. 外连接查询
    1) 左外连接查询
       关键字: left join
       主表位置: 关键字左侧
       查询方式: 以主表数据为基础, 根据连接条件, 到副表中匹配数据
       匹配的次数: 不限
       结果集的形成方式: 无论是否匹配成功, 主表数据都会放入结果集,
          每匹配成功1次, 则会将副表数据连同主表数据再放入结果集1次
    2) 右外连接查询
       关键字: right join
       主表位置: 关键字右侧
       查询方式: 以主表数据为基础, 根据连接条件, 到副表中匹配数据
       匹配的次数: 不限
       结果集的形成方式: 无论是否匹配成功, 主表数据都会放入结果集,
          每匹配成功1次, 则会将副表数据连同主数据再放入结果集1次

-- 查询员工及其所属部门的信息
SELECT e.*, d.*
FROM emp e
INNER JOIN dept d ON e.`deptno` = d.`deptno`;

-- 查询员工及其上司的信息
SELECT s.`empno` 员工ID, s.`ename` 员工姓名, s.`mgr` 经理ID
      , m.`ename` 经理姓名
FROM emp s
INNER JOIN emp m ON s.`mgr` = m.`empno`;

SELECT s.`empno` 员工ID, s.`ename` 员工姓名, s.`mgr` 经理ID
      , m.`ename` 经理姓名
FROM emp s
LEFT JOIN emp m ON s.`mgr` = m.`empno`;

SELECT s.`empno` 员工ID, s.`ename` 员工姓名, s.`mgr` 经理ID
      , m.`ename` 经理姓名
FROM emp s
RIGHT JOIN emp m ON s.`mgr` = m.`empno`;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值