Oracle 高级查询1 关联查询 分组查询

Posted 叶墨悻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 高级查询1 关联查询 分组查询相关的知识,希望对你有一定的参考价值。

高级查询

1.关联查询
作用:可以跨越多表查询

--查询出员工的名字和他所在部门的的名字


语法:
select 列,列,列
from 表1 join 表2
on 表1外键=表2主键

 

2.外联接


左外联[left outer join]
以关联的左边为准,即使右边没有与之匹配的记录,则左边的记录也要
出现在结果集中,右边全部以NULL值显示。

右外联[right outer join]
以关联的右边为准,即使左边没有与之匹配的记录,则右边的记录也要
出现在结果集中,左边全部以NULL值显示。

 

3分组查询
定义:利用内置的分组函数来查询

所谓分组,就是看待数据的“角度”不同。
也就是把某类值相同的看做一组。

语法:
select 列名,组函数(列名)...from 表名
where 条件
group by 列
having 字句
order by 列

分组函数:
SUM([distinct] 列|表达式|值)        求和
AVG([distinct] 列|表达式|值)         求平均值
MAX(列|表达式|值)            求最大值
MIN(列|表达式|值)             求最小值
COUNT([distinct] 列|*)            求个数(包含null)


注意1:只有出现在group by 后面的列[用来做为分组条件的列],才有资格
写在SELECT的后面,除非使用组函数进行修饰。

注意2:having 和where 都是条件
区别:
WHERE 子句中是不能使用 组函数的,因为它在GROUP BY 之前。
但是,HAVING 子句中可以使用组函数,因为它在GROUP BY 之后。

 




























以上是关于Oracle 高级查询1 关联查询 分组查询的主要内容,如果未能解决你的问题,请参考以下文章

oracle中关联查询分组查询

MyBatis关于多表联查 关联关系之一--------一对多(单条sql语句查询)

多表联查--04---子查询

oracle查询一次返回3个表

Java mysql 多表联查 与循环查询组装数据

键值约束与扩展属性ER关系图三大范式分组查询多表联查