• 关联查询


    关联查询

    从多张表中查询对应记录的信息
    关联查询的重点在于这些表中的记录的对应关系,这个关系也成为连接条件
    SELECT ename,dname,sal
    FROM emp e,dept d
    WHERE
    e.deptno=d.deptno
    AND
    sal>2500

    关联查询要添加连接条件,否则会产生笛卡尔积,笛卡尔积通常是一个无意义的结果集,它记录
    书是所有产于查询的表的记录数乘积的结果。要避免出现,数据量大时极易出现内存溢出等现象
    n张表关联查询要有至少n-1个连接条件

    内连接也是用来完成关联查询的 不满足条件的不显示
    select a.ename,d.dname from emp a join dept d
    on a.deptno=d.deptno
    join ---on

    外连接除了会将满足连接条件的记录查询出来之外,还会将不满足连接条件的记录也查询出来
    外连接分为;
    左外连接:以join 左侧表作为驱动表(所有数据都被会查询出来),那么当该表中的某条记录
    不满足连接条件时来自右侧表中的字段全部填null
    left join---on
    select a.ename,d.dname from emp a join dept d
    on a.deptno=d.deptno(+)
    右外连接
    right join---on
    select a.ename,d.dname from emp a join dept d
    on a.deptno(+)=d.deptno
    全外连接
    full join---on
    select a.ename,d.dname from emp a full join dept d
    on a.deptno=d.deptno

    自连接

    自连接即:当前表的一条记录可以对应当前表自己的多条记录
    自连接是为了解决同类型数据但是又存在上下级关系的梳妆结构
    数据时使用
    自己连自己
    select e.ename,m.ename,m.deptno,d.loc
    from emp e join emp m on e.mgr=m.empno
    join dept d
    on m.deptno=d.deptno
    where e.ename='smith'

    自然连接会自动寻找两张表列名相同的做等值
    连接。注意,两张表中应当只有一列名字相同
    才可以使用自然连接。


    外连接的应用场景:
    当我们查看部门表时,因为在进行与emp连接查询
    时,40号部门不存在任何员工,导致查询结果该
    记录被忽略。这时若我们需要主要查看部门有哪些
    时,就使用外连接。

  • 相关阅读:
    游标和视图
    sql server 变量与集合运算
    sql server 流程控制
    sql server 基础查询和子查询
    数据库范式快速理解
    创建数据库与数据表
    SQL server 使用
    Android studio 下载依赖jar包慢
    java根据list数据通过接口姓名并填充
    【翻译】Promises/A+规范
  • 原文地址:https://www.cnblogs.com/Bighua123/p/7567124.html
Copyright © 2020-2023  润新知