聚合函数:(都会忽略null数据)
常用的有5种:将字段中所有的数据聚合在一条中
、sum(字段名) :求总和 、avg(字段名) :求平均值 、max(字段名) :求最大值 、min(字段名) :求最小值 、count(字段名、*) :统计行数 ----、按部门编号,查询平均薪水 ,并且平均薪水<1300的不显示,结果按降序排序
select empno,avg(sal) as avgsal
from scott.emp
group by empno
having avg(sal)>=
order by avgsal desc; 说明:
SQL语句的执行顺序:一定是从上到下的! group by 执行之后才会执行having 、select中没有使用聚合函数的字段名必须写在这里 having 后不能使用字段的别名 可以聚合函数、一般字段名 order by 后面可以有:字段名、聚合函数、字段别名 注意:
Oracle 10g中才会出现的容错性: having 语句可以写在group by 之前,不会报错,但是实际上执行的顺序还是先执行group by 后执行having子句 说明:
、当一个查询中,出现聚合函数和没有使用聚合函数的字段,则该字段必须出现在group by子句中! 、group by 字段1,字段2; 会先按照字段1分组得到一个结果集,再按照字段2进行分组! 、where 发生在group by 前! 、where 后面不能有聚合函数! 多表查询: 表连接分类: 内连接、外连接、交叉连接 、内连接: [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! 、外连接: 分类:左外连接、右外连接、全连接! 、左外连接: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(+); 、右外连接: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; 、全外连接:full/all outer join SQL语法格式: select *
from 表1 full outer join 表2
on 表1.字段1=表2.字段1; 、交叉连接: 表与表之间做笛卡尔积查询! SQL语法格式:(无条件查询) select *
from 表1 cross join 表2; 或者 select *
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. HTML5 Canvas核心技术—图形、动画与游戏开发.pdf3

    路径与子路径 在某一时刻,canvas之中只能有一条路径存在,Canvas规范称之为“当前路径”(current path),这条路径却可以包含很多子路径(subpath),子路径是由两个或者更多点组 ...

  2. Bzoj 2243: [SDOI2011]染色 树链剖分,LCT,动态树

    2243: [SDOI2011]染色 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 5020  Solved: 1872[Submit][Status ...

  3. java解惑

    java对转义字符没有提供任何特殊处理.编译器在将程序解析成各种符号之前,先将 Unicode 转义字符转换成为它们所表示的字符[JLS 3.2] 阅读笔记

  4. MyEclipse10搭建Strust2开发环境

    一.创建一个JavaWeb项目 启动MyEclipse10    ,然后在MyEclipse中创建一个JavaWeb项目,点击[File]---->[New]---->[WebProjec ...

  5. RichTextBox选中文本时往自己的其他的位置实现拖拽

          private void Form1_Load(object sender, EventArgs e) { richTextBox1.AllowDrop = true; richTextB ...

  6. android的消息处理机制(图+源码分析)——Looper,Handler,Message

    android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了.这不,前几天为了了解android ...

  7. 手动安装 mysqldb 与[ pip easy_install]

    mysqldb下载: http://sourceforge.net/projects/mysql-python/ https://sourceforge.net/projects/mysql-pyth ...

  8. MapReduce中的Join算法

    在关系型数据库中Join是非常常见的操作,各种优化手段已经到了极致.在海量数据的环境下,不可避免的也会碰到这种类型的需求,例如在数据分析时需要从不同的数据源中获取数据.不同于传统的单机模式,在分布式存 ...

  9. linux中创建静态库和动态库

    1. 函数库有两种:静态库和动态库. 静态库在程序编译的时候会被连接到目标代码中,程序运行时将不再需要改静态库. 动态库中程序编译的时候并不会连接到目标代码中,而是在程序运行时才被载入,因此在程序运行 ...

  10. linux解压缩命令

    1.tar -cvf /data/sc2.tar /data (只打包,不压缩) 把/data下的文件打包成 sc.tar  上面两个都是绝对路径噢 tar -zcvf /data/sc2.tar.g ...