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实现连接条件和筛选条件的分离,可读性较高。