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():求出最小值
分组查询:

分组查询的限制:



SQL语句的书写顺序和执行顺序:
子查询:
子查询=简单查询+限定查询+多表查询+统计查询的综合体
因为多表查询的性能差,所以用子查询作为代替方案。子查询指的就是在一个查询之后嵌套了其他的若干查询。
如果子查询返回的是多行单列数据,就需要使用三种判断副判断:in、any、all
in操作符:用于指定一个子查询的判断范围

any操作符:与每一个内容想匹配,有三种匹配形式:

all操作符:与每一个内容相匹配,有两种匹配形式:


  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值