SQL连接查询 笔记

  1. 连接查询
    定义:数据往往不是存放储一张表中,而是同时存储在多张表中,这些表与表存在着关系,我们在检索数据的时候往往需要多张表联合起来检索,这种多表联合检索被称为连表查询或跨表查询

这里写图片描述

需要注意的笛卡尔乘积现象
含义:若两张表进行连接查询的时候没有任何条件限制,最终的查询结果总数是两张表记录的乘积,该现在称为笛卡尔积现象。

2、根据SQL语法规则出现的年代分类

  • SQL92语法

    查询每一个员工所在的部门名称,要求最终显示员工姓名和对应的部门名称

select xxxx from A表名,B表名 where 表连接条件 and 数据查询条件;
缺点:表连接条件与查询条件放在一起,没有分离;
  • SQL99语法【只掌握SQL99 】

    语法:select xxxx from A表名 join B表名 where 数据查询条件;

    优点:表连接独立,结构清晰,如果结果数据不满足要求,可再追加where条件进行过滤; 
    

3、根据连接方式分类

  • 内连接 :只连接匹配的行,即A表与B表相连接,能够匹配的记录查询出来
    具体来说:这个部门有员工,而这个员工又有所属的部门,数据是一一对应的,这样的数据才能被内连接查询出来
    但是:有的部门没有员工,有的员工没有部门
  • 外连接:A表和B表能够完全匹配的记录查询出来之外,将其中一张表的记录无条件的完全查询出来,
  • 对方表没有匹配的记录时,会自动模拟出null值与之匹配
  • 外连接的查询结果条数 >= 内连接的查询结果条数

4、内连接之等值连接

  • 定义:只连接匹配的行,即A表与B表相连接,能够匹配的记录查询出来
  • 等值连接 ,用=连接两个表的条件

5、内连接之非等值连接

  • 用非等号连接两个表中的条件
  • 案例:查询员工的工资及其工资级别
select  e.ename,e.sal,s.grade from emp e join salgrade s on e.sal between s.losal and hisal

6、内连接之自连接

  • 案例:查询员工的经理的信息
  • 思路:通过表的别名把一个表虚拟成两个表,然后在这个两个表上面做等值查询
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值