iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle多表查询,四种连接方式
  • 681
分享到

Oracle多表查询,四种连接方式

摘要

 一、聚合函数:(都会忽略null数据)        1、常用的有5种:将字段中所有的数据聚合在一条中            1、sum(字段名)        :求总和                2、avg(字段名)        


	Oracle多表查询,四种连接方式
[数据库教程]

 一、聚合函数:(都会忽略null数据)
        1、常用的有5种:将字段中所有的数据聚合在一条中
            1、sum(字段名)        :求总和    
            2、avg(字段名)        :求平均值
            3、max(字段名)        :求最大值
            4、min(字段名)        :求最小值
            5、count(字段名、*)    :统计行数  
        2、按部门编号,查询平均薪水 ,并且平均薪水<1300的不显示,结果按降序排序
            select empno,avg(sal) as avgsal
            from scott.emp
            group by empno
            having avg(sal)>=1300
            order by avgsal desc;

        说明:
            sql语句的执行顺序:一定是从上到下的!   
            group by 执行之后才会执行having、select中没有使用聚合函数的字段名必须写在这里
            having 后不能使用字段的别名、可以聚合函数、一般字段名
            order by 后面可以有:字段名、聚合函数、字段别名

        注意:
            oracle 10g中才会出现的容错性:
                having 语句可以写在group by 之前,不会报错,但是实际上执行的顺序还是先执行group by 后执行having子句

        说明:
            1、当一个查询中,出现聚合函数和没有使用聚合函数的字段,则该字段必须出现在group by子句中!
            2、group by 字段1,字段2;  会先按照字段1分组得到一个结果集,再按照字段2进行分组!
            3、where 发生在group by 前!
            4、where 后面不能有聚合函数!

    二、多表查询:
            表连接分类: 内连接、外连接、交叉连接、自连接
            1、内连接: [inner] join    on
                SQL语法格式:
                    语法1:
                        select *
                        from 表1 [inner] join 表2 on 表1.字段1=表2.字段1;
                    语法2:
                        select *
                        from 表1,表2
                        where 表1.字段1=表2.字段1;

                说明: 
                    内连接中的inner join 和 join 是等价的!但是建议为了程序的可读性
                    尽量不要省略inner!

            2、外连接:         
                分类:左外连接、右外连接、全连接!
                1)、左外连接:left outer join             
                    连接效果:
                        左侧的表中的全部数据都会被显示出来,但是右侧表的数据,
                        只有和左侧匹配上的字段才会被查询出来!否则都会显示null!
                    SQL语法格式:             
                        语法1:
                            select *
                            from 表1 left outer join 表2
                                 on 表1.字段1=表2.字段1;
                        语法2:
                            select *
                            from 表1 left outer join 表2
                            where 表1.字段1=表2.字段1(+);

                2)、右外连接:right outer join           
                    连接效果:
                        右侧的表中的全部数据都会被显示出来,但是左侧表的数据,
                        只有和右侧匹配上的字段才会被查询出来!否则都会显示null!
                    SQL语法格式:              
                        语法1:
                            select *
                            from 表1 right outer join 表2
                                 on 表1.字段1=表2.字段1;
                        语法2:
                            select *
                            from 表1 left outer join 表2
                            where 表1.字段1(+)=表2.字段1;

                3)、全外连接:full/all outer join 
                    SQL语法格式:              
                            select *
                            from 表1 full outer join 表2
                                 on 表1.字段1=表2.字段1;

            3、自连接(self join)
                    自连接(self join)是SQL语句中经常要用的连接方式,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据。
                    示例:
                    在oracle的scott的schema中有一个表是emp。在emp中的每一个员工都有自己的mgr(经理),并且每一个经理自身也是公司的员工,自身也有自己的经理。
                    但现在我们只有一张emp表。所以我们可以采用自连接。自连接的本意就是将一张表看成多张表来做连接。我们可以这样来写SQL语句:
                    SQL> select work.ename worker,mgr.ename  manager from scott.emp work, scott.emp mgr
                      2  where work.mgr = mgr.empno
                      3  order by work.ename;
                        WORKER     MANAGER
                        ---------- ----------
                        ADAMS      SCOTT
                        ALLEN      BLAKE
                        BLAKE      KING
                        CLARK      KING
                        FORD       JONES
                        JAMES      BLAKE
                        JONES      KING
                        MARTIN     BLAKE
                        MILLER     CLARK
                        SCOTT      JONES
                        SMITH      FORD

                        WORKER     MANAGER
                        ---------- ----------
                        TURNER     BLAKE
                        WARD       BLAKE

                        已选择13行。

            4、交叉连接: 表与表之间做笛卡尔积查询!
                SQL语法格式:(无条件查询)
                    select *
                    from 表1 cross join 表2;
                           或者
                    select *
                    from 表1, 表2;

Oracle多表查询,四种连接方式

原文地址:https://www.cnblogs.com/lma0702/p/13468398.html

您可能感兴趣的文档:

--结束END--

本文标题: Oracle多表查询,四种连接方式

本文链接: https://www.lsjlt.com/news/7795.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle多表查询,四种连接方式
     一、聚合函数:(都会忽略null数据)        1、常用的有5种:将字段中所有的数据聚合在一条中            1、sum(字段名)        :求总和                2、avg(字段名)        ...
    99+
    2016-06-30
    Oracle多表查询,四种连接方式 数据库入门 数据库基础教程 数据库 mysql
  • MySQL 四种连接和多表查询详解
    目录MySQL内连接、左连接、右连接、外连接、多表查询构建环境:一、INNERJION内连接(A∩B)二、LEFTJOIN左外连接(A全有)三、RIGHTJOIN右外连接(B全有)四...
    99+
    2022-11-12
  • MySQL的连接方式和多表查询方法
    本篇内容主要讲解“MySQL的连接方式和多表查询方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的连接方式和多表查询方法”吧!目录MySQL 内连接、左连接、右连接、外连接、多表查询...
    99+
    2023-06-20
  • 连接查询(多表查询)——MySQL
    连接查询(多表查询) 又称多表查询,当查询的字段涉及多个表的时候,就要用到连接查询 分类: 为表起别名: 提高语句的简洁度区分多个重名字段注意:如果为表起了别名,则查询的字段就不能使用原来的别名去限定 内连接 查询A、B 交集部分数据 语...
    99+
    2023-08-18
    数据库 mysql 多表查询
  • MybatisPlus多表连接查询
    mybatis-plus作为mybatis的增强工具,它的出现极大的简化了开发中的数据库操作,但是长久以来,它的联表查询能力一直被大家所诟病。一旦遇到left join或right join的左右连接,你还是得老老实实的打开xml文件,手写...
    99+
    2023-08-16
    mybatis java mysql
  • Mybatis分页查询——四种传参方式
    目录 相关导读 一、顺序传参 1. 持久层接口方法 2. UserMapper.xml映射文件新增标签 3. 新来源地址:https://blog.csdn.net/qq_53317005/article/details/129849030...
    99+
    2023-08-31
    java maven mybatis mysql
  • MySQL多表连接查询详解
    目录多表连接查询内连接左连接右连接子查询总结多表连接查询 表与表之间的连接分为内连接和外连接 内连接:仅选出两张表互相匹配的记录 外连接:既包括两张表匹配的记录,也...
    99+
    2022-11-12
  • MySql的回顾四:多表查询上(等值连接/非等值连接/自连接)-1992语法
           时光在不经意间,总是过得出奇的快。小暑已过,进入中暑,太阳更加热烈的绽放着ta的光芒,...在外面被太阳照顾的人们啊,你们都是勤劳与可爱的人啊。在房子里已各种姿势看我这篇这章的你,既然点了进来,那就由我继续带你回顾M...
    99+
    2022-03-23
    MySql的回顾四:多表查询上(等值连接/非等值连接/自连接)-1992语法
  • mongodb多表连接查询的方法是什么
    在MongoDB中,没有直接的多表连接查询方法,因为MongoDB是一个非关系型数据库,不支持传统的关系型数据库的表连接操作。但是可...
    99+
    2023-09-12
    mongodb
  • MySQL数据库:多表连接查询
    多表连接查询 注意:使用连接技术建议将表经行重命名! # explain 检索连接是否达标 # 内连接 # 语法1 from 表1 inner join 表2 on 主键字段=外键字段 [where 条件表达式] # 语法2 ...
    99+
    2022-01-30
    MySQL数据库:多表连接查询
  • SQL 多表联合查询的几种方式详解
    目录前言正文内连接等值连接/相等连接自然连接自连接外连接左外连接右外连接全外连接/完全外连接交叉连接/笛卡尔积总结前言 连接查询是关系数据中最主要的查询,包括内连接、外连接等。通过连接运算符可以实现多个表查询。 正文 连...
    99+
    2023-02-15
    SQL 多表联合查询 SQL 多表查询 SQL 联合查询
  • SQL 多表联合查询的几种方式详解
    目录前言正文内连接等值连接/相等连接自然连接自连接外连接左外连接右外连接全外连接/完全外连接交叉连接/笛卡尔积总结前言 连接查询是关系数据中最主要的查询,包括内连接、外连接等。通过连...
    99+
    2023-02-15
    SQL 多表联合查询 SQL 多表查询 SQL 联合查询
  • Oracle连接远程数据库的四种方法
    Oracle数据库的远程连接可以通过多种方式来实现,本文我们主要介绍四种远程连接的方法和注意事项,并通过示例来说明,接下来我们就开始介绍 第一种方法: 若oracle服务器装在本机上,那就不多说了,连接...
    99+
    2022-10-18
  • mysql如何实现多表连接查询
    这篇文章给大家分享的是有关mysql如何实现多表连接查询的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实际的项目,存在多张表的关联关系。不可能在一张表里面就能检索出所有数据。如果...
    99+
    2022-10-18
  • SQL如何实现多表连接查询
    小编给大家分享一下SQL如何实现多表连接查询,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 按连接方式分为等连接、非等连接、外连接、自连接、多表关联等1、等连...
    99+
    2022-10-19
  • Mariadb怎么实现多表连接查询
    这篇文章主要介绍“Mariadb怎么实现多表连接查询”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Mariadb怎么实现多表连接查询”文章能帮助大家解决问题。概念因为我们使用的是关系型数据库,每张表...
    99+
    2023-06-27
  • MySql连接查询方式详解
    目录1. 什么是连接查询2. 连接查询的方式3. 内连接1. 等值连接2. 非等值连接3. 自连接4. 外连接1. 右外连接2. 左外连接5. 多张表(两张以上)连接1. 什么是连接查询 从一张表中单独查询,称为单表查询...
    99+
    2022-09-19
  • MybatisPlus多表连接查询的问题及解决方案
    目录一、序言(一)背景内容(二)场景说明(三)前期准备二、一对一查询(一)查询单条记录(二)查询多条记录三、一对多查询(二)查询多条记录(三)查询多条记录(分页)四、多对多查询(一)...
    99+
    2022-11-13
  • Java中Mybatis分页查询的四种传参方式
    目录一、顺序传参 1. 持久层接口方法2. UserMapper.xml映射文件新增标签3. 新增测试方法4. 运行结果二、@param传参 1. 持久...
    99+
    2023-05-13
    Java Mybatis分页查询 Mybatis分页查询 Mybatis传参方式
  • MySql数据库单表查询与多表连接查询效率对比
    这段时间在做项目的过程中,遇到一个模块,数据之间的联系很复杂,在建表的时候就很纠结,到底该怎么去处理这些复杂的数据呢,是单表查询,然后在业务层去处理数据间的关系,还是直接通过多表连接...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作