1. 聚合函数:(都会忽略null数据)
  2. 常用的有5种:将字段中所有的数据聚合在一条中
  3. sum(字段名) :求总和
  4.  
  5. avg(字段名) :求平均值
  6.  
  7. max(字段名) :求最大值
  8.  
  9. min(字段名) :求最小值
  10.  
  11. count(字段名、*) :统计行数
  12.  
  13. ----、按部门编号,查询平均薪水 ,并且平均薪水<1300的不显示,结果按降序排序
  14. select empno,avg(sal) as avgsal
  15. from scott.emp
  16. group by empno
  17. having avg(sal)>=
  18. order by avgsal desc;
  19.  
  20. 说明:
  21. SQL语句的执行顺序:一定是从上到下的!
  22.  
  23. group by 执行之后才会执行having select中没有使用聚合函数的字段名必须写在这里
  24.  
  25. having 后不能使用字段的别名 可以聚合函数、一般字段名
  26.  
  27. order by 后面可以有:字段名、聚合函数、字段别名
  28.  
  29. 注意:
  30. Oracle 10g中才会出现的容错性:
  31.  
  32. having 语句可以写在group by 之前,不会报错,但是实际上执行的顺序还是先执行group by 后执行having子句
  33.  
  34. 说明:
  35. 、当一个查询中,出现聚合函数和没有使用聚合函数的字段,则该字段必须出现在group by子句中!
  36.  
  37. group by 字段1,字段2 会先按照字段1分组得到一个结果集,再按照字段2进行分组!
  38.  
  39. where 发生在group by 前!
  40.  
  41. where 后面不能有聚合函数!
  42.  
  43. 多表查询:
  44.  
  45. 表连接分类: 内连接、外连接、交叉连接
  46.  
  47. 、内连接: [inner] join on
  48.  
  49. SQL语法格式:
  50. 语法1
  51. select *
  52. from 1 [inner] join 2 on 1.字段1=表2.字段1;
  53.  
  54. 语法2
  55. select *
  56. from 1,表2
  57. where 1.字段1=表2.字段1;
  58.  
  59. 说明:
  60. 内连接中的inner join join 是等价的!但是建议为了程序的可读性
  61.  
  62. 尽量不要省略inner!
  63.  
  64. 、外连接:
  65.  
  66. 分类:左外连接、右外连接、全连接!
  67.  
  68. 、左外连接:left outer join
  69.  
  70. 连接效果:
  71. 左侧的表中的全部数据都会被显示出来,但是右侧表的数据,
  72. 只有和左侧匹配上的字段才会被查询出来!否则都会显示null
  73.  
  74. SQL语法格式:
  75.  
  76. 语法1
  77. select *
  78. from 1 left outer join 2
  79. on 1.字段1=表2.字段1;
  80.  
  81. 语法2
  82. select *
  83. from 1 left outer join 2
  84. where 1.字段1=表2.字段1(+);
  85.  
  86. 、右外连接:right outer join
  87.  
  88. 连接效果:
  89. 右侧的表中的全部数据都会被显示出来,但是左侧表的数据,
  90. 只有和右侧匹配上的字段才会被查询出来!否则都会显示null
  91.  
  92. SQL语法格式:
  93.  
  94. 语法1
  95. select *
  96. from 1 right outer join 2
  97. on 1.字段1=表2.字段1;
  98.  
  99. 语法2
  100. select *
  101. from 1 left outer join 2
  102. where 1.字段1(+)=表2.字段1;
  103.  
  104. 、全外连接:full/all outer join
  105.  
  106. SQL语法格式:
  107.  
  108. select *
  109. from 1 full outer join 2
  110. on 1.字段1=表2.字段1;
  111.  
  112. 、交叉连接: 表与表之间做笛卡尔积查询!
  113.  
  114. SQL语法格式:(无条件查询)
  115.  
  116. select *
  117. from 1 cross join 2;
  118.  
  119. 或者
  120.  
  121. select *
  122. from 1, 2;

数据库(学习整理)----7--Oracle多表查询,三种join连接的更多相关文章

  1. MySQL基础(三)多表查询(各种join连接详解)

    Mysql 多表查询详解 一.前言 二.示例 三.注意事项 一.前言 上篇讲到Mysql中关键字执行的顺序,只涉及了一张表:实际应用大部分情况下,查询语句都会涉及到多张表格 : 1.1 多表连接有哪些 ...

  2. Oracle单表备份三种方案

    备份方案一: 1. 备份 create table [备份名] as select * from [表名]; 2. 恢复 truncate table org_group; insert into o ...

  3. oracle系统表查询

    oracle查询用户下的所有表 select * from all_tab_comments -- 查询所有用户的表,视图等select * from user_tab_comments -- 查询本 ...

  4. Oracle锁表查询和解锁方法

    数据库操作语句的分类 DDL:数据库模式定义语言,关键字:create DML:数据操纵语言,关键字:Insert.delete.update DCL:数据库控制语言 ,关键字:grant.remov ...

  5. oracle锁表查询

    ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作 复制代码代码如下: --锁表查 ...

  6. oracle 字典表查询

    1.oracle 字典表查询 /*显示当前用户*/ show user 在sql plus中可用,在pl sql中不可用 /*查看所有用户名*/ select username,user_id,cre ...

  7. 数据库开发-Django ORM的单表查询

    数据库开发-Django ORM的单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询集 1>.查询集相关概述 查询会返回结果的集,它是django.db.mod ...

  8. Oracle 多表查询、查询运算符和集合运算

    一.多表查询 1.内连接 一般使用INNER JOIN关键字指定内连接,INNER可以省略,默认表示内连接.查询结果中只包含两表的公共字段值相等的行,列可以是两表中的任意列 2.外连接 包括左外连接. ...

  9. MySQL之多表查询一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习

    MySQL之多表查询 阅读目录 一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习 一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 首先说一下,我们写项目一般都会建 ...

随机推荐

  1. objective-c中点语法的使用

    点语法的作用:提供一种访问属性的setter和getter的机制. 用法举例: 1.创建一个Person类,并声明属性.在person.h中. 2.实现一个init方法,并使用点语法等.在pers.m ...

  2. SRM 446(1-250pt, 1-500pt)

    嗯....今天的500确实比较好 DIV1 250 模拟...略 // BEGIN CUT HERE /* * Author: plum rain * score : */ /* */ // END ...

  3. NoSQL数据库的四大分类表格分析

  4. 阅读STL源码剖析之list

    首先,以我之愚见,觉得有两个地方可以优化一下,不知对否,有待商榷: 1.在list的结点定义中 template<typename T> struct __list_node { type ...

  5. 大型项目 Gradle 的常用库和版本管理[转]

    http://www.tuicool.com/articles/vqQZBrm 大型项目 Gradle 的常用库和版本管理 时间 2016-03-15 06:44:00  Mystra 原文  htt ...

  6. leetcode 题解 || Swap Nodes in Pairs 问题

    problem: Given a linked list, swap every two adjacent nodes and return its head. For example, Given ...

  7. chrome下老是弹出网页显示 true

    事实上这个问题是chrome下安装了一些插件的原因,一般来说是安装迅雷插件会出现这个问题,删除迅雷插件就好了.

  8. NuGet的使用和服务搭建

    问题的由来 最近部门,在开发的时候遇到一个问题,现在有项目A B C三个项目,项目B和C分别提供了组件库由项目A直接引用.那么每次开打项目A获取最新后,同时还得打开项目B C获取最新然后编译一次.抛开 ...

  9. 文件读写操作(含SDCard的读写)

    1.在AndroidManifest文件下添加SDCard的读写权限 <!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name ...

  10. android自定义控件之滚动广告条

    在一些电子商务网站上经常能够看到一些滚动的广告条,许多软件在首次使用时也有类似的广告条,如图: 其实在github上有实现这种效果的控件,不过这东西做起来也是很简单,我们今天就来看看该怎么做. 先来看 ...