Oracle数据库:左右连接、自然连接、交叉连接、统计函数以及分组查询(having子句)

Oracle数据库的左、右连接:
(+):代表连接的方向
主表的数据可以完全查出来
左连接,左边的表的表是主表;右连接,右边的表示主表
如果(+)在右边,是左连接;(+)在左,是右连接
select e.ename,e.job,m.ename from emp e,emp m where e.mgr=m.empno(+) --左连接
select e.ename,e.job,m.ename from emp e,emp m where e.mgr(+)=m.empno --右连接
交叉连接(cross join):用于产生笛卡尔积。笛卡尔积本身并不是属于无用的内容,在某些情况下还是需要使用的。
select * from emp cross join dept;
自然连接(natural join):自动找到匹配的关联字段,消除笛卡尔积
select * from emp natural join dept;
join...using子句:用户自己指定一个消除笛卡尔积的关联字段(相同字段名称可以使用)
select * from emp join dept using(deptno);
join...on子句:用户自己指定一个可以消除笛卡尔积的关联条件(不相同字段名称可以使用)
select *from emp join dept on(emp.deptno=dept.deptno);
统计函数:常用的统计函数有一下几个:
count():查询表中的数据记录
avg():求出平均值 sum():求和 max():求出最大值 min():求出最小值
分组查询:
Oracle数据库:左右连接、自然连接、交叉连接、统计函数以及分组查询(having子句)_第1张图片
分组查询的限制:Oracle数据库:左右连接、自然连接、交叉连接、统计函数以及分组查询(having子句)_第2张图片
Oracle数据库:左右连接、自然连接、交叉连接、统计函数以及分组查询(having子句)_第3张图片
Oracle数据库:左右连接、自然连接、交叉连接、统计函数以及分组查询(having子句)_第4张图片
Oracle数据库:左右连接、自然连接、交叉连接、统计函数以及分组查询(having子句)_第5张图片
SQL语句的书写顺序和执行顺序:Oracle数据库:左右连接、自然连接、交叉连接、统计函数以及分组查询(having子句)_第6张图片
子查询:
子查询=简单查询+限定查询+多表查询+统计查询的综合体
因为多表查询的性能差,所以用子查询作为代替方案。子查询指的就是在一个查询之后嵌套了其他的若干查询。
如果子查询返回的是多行单列数据,就需要使用三种判断副判断:in、any、all
in操作符:用于指定一个子查询的判断范围
Oracle数据库:左右连接、自然连接、交叉连接、统计函数以及分组查询(having子句)_第7张图片
any操作符:与每一个内容想匹配,有三种匹配形式:
Oracle数据库:左右连接、自然连接、交叉连接、统计函数以及分组查询(having子句)_第8张图片
all操作符:与每一个内容相匹配,有两种匹配形式:Oracle数据库:左右连接、自然连接、交叉连接、统计函数以及分组查询(having子句)_第9张图片
Oracle数据库:左右连接、自然连接、交叉连接、统计函数以及分组查询(having子句)_第10张图片
Oracle数据库:左右连接、自然连接、交叉连接、统计函数以及分组查询(having子句)_第11张图片

你可能感兴趣的:(Oracle数据库)