MySQL(5)

sql199语法

  • 语法
    select 查询列表
    from 表1 【别名】 【连接类型】
    join 表2 【别名】
    on 连接条件
    【 where 筛选条件】
    【group by 分组】
    【having 筛选条件】
    【order by 排序列表】
  • 连接类型
    –内连接 inner
    –外连接
    左外:left 【outer】
    右外:rigth 【outer】
    全外:full 【outer】
    –交叉连接 cross
内连接
  • 语法
    select 查询列表
    from 表1 别名 inner
    join 表2 别名
    on 连接条件
  • 分类
    等值连接
    非等值连接
    自连接
  • 特点
    1.添加排序,分组,筛选
    2.inner可以省略
    3.筛选条件放在where后面,连接条件放在on后面,提高分离性,便于阅读。
    4.inner join连接和和sql192语法的等值连接效果是一样的,都是查询多表的交集。

-案例
操作表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
案例1:查询员工名,部门名(等值连接)
在这里插入图片描述
案例2:查询名字中包含张的员工和工种名称(添加筛选条件)(等值连接)
在这里插入图片描述
案例3:查询哪个部门的员工个数>3的部门名称和员工个数,并按个数降序(添加排序)(等值连接)
在这里插入图片描述
案例4:查询员工,部门名,工种名(等值连接)
在这里插入图片描述
案例5:查询员工的工资级别(非等值连接)
在这里插入图片描述
案例6:查询工资级别的个数>2的个数,并且按工资级别降序(非等值连接)
在这里插入图片描述
案例7:查询员工名字,上级名字(自连接)
在这里插入图片描述

外连接
  • 语法
    select 查询列表
    from 表1 别名 outer
    (left|right) join 表2 别名
    on 连接条件
  • 应用场景:用于查询一个表中有,另一个表没有的记录
  • 特点
    1.外连接查询分主从表。
    2.外连接的查询结果为主表中的所有记录
    如果从表中有和它匹配的,则显示匹配的值
    如果从表中没有和它匹配的,则显示null
    外连接查询结果=内连接结果+主表中有而从表没有的记录
    3.区分主从表:
    左外连接:left join左边的是主表
    右外连接:right join右边的是主表
    4.左外和右外交换两个表的顺序,可以实现同样的效果
  • 案例
    案例1:查询哪个员工没有部门
    左连接
    在这里插入图片描述
    右连接
    在这里插入图片描述
交叉连接
  • 语法
    select 查询列表
    from 表1 别名 cross
    join 表2 别名
    on 连接条件
  • 特点:
    1.交叉连接就是笛卡儿积

案例:
案例1:
在这里插入图片描述

总结连接查询
  • sql192和sql199
  • 功能:sql199支持的较多
  • 可读性:sql199实现连接条件和筛选条件的分离,可读性较高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值