zoukankan      html  css  js  c++  java
  • 关联查询

    关联查询

    从多张表中查询对应记录的信息
    关联查询的重点在于这些表中的记录的对应关系,这个关系也成为连接条件
    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号部门不存在任何员工,导致查询结果该
    记录被忽略。这时若我们需要主要查看部门有哪些
    时,就使用外连接。

  • 相关阅读:
    LaTeX —— 特殊符号与数学字体
    LaTeX —— 特殊符号与数学字体
    实战caffe多标签分类——汽车品牌与车辆外观(C++接口)[详细实现+数据集]
    家书与家训
    家书与家训
    Handler总结
    (step5.1.3)hdu 1213( How Many Tables——1213)
    JavaScript+XML+VBA导出报表初步构想
    XML学习总结
    JSP 9 大内置对象详解
  • 原文地址:https://www.cnblogs.com/Bighua123/p/7567124.html
Copyright © 2011-2022 走看看