BOD-Oracle多表查询

多表查询会产生笛卡儿积,为了消除笛卡儿积必须寻找相同字段

(Oracle编辑sql文件:   ed 编辑    @执行)


进行多表查询有下列几个步骤:

1.确定有几张表

2.消除笛卡儿积

3.确定有哪些字段


 左连接查询,右连接查询

例:e.mgr(+)=m=m.empno(左连接以等号右边表为基准)


自然连接:natural join   自动匹配字段(在两张表只有一个字段名称一样,并且这个字段刚好是关联字段且关联字段是用=来匹配的)

交叉连接:cross join      用来产生笛卡儿积


using子句:两张表中有多个字段相同,关联字段名也相同的情况下(=)

例:select * from emp join dept using(deptno);


左右链接:

on子句:自己编写连接条件

例:select e.ename,m.ename from emp e left join emp m on(e.mgr=m.empno);


聚合函数                                                  结果


SUM([ALL|DISTINCT]expression_r)                  数字表达式中所有值的和


AVG([ALL|DISTINCT]expression_r)                  数字表达式中所有值的平均值


COUNT([ALL|DISTINCT]expression_r)                表达式中值的个数


COUNT(*)                                       选定的行数


MAX(expression_r)                                表达式中的最高值


MIN(expression_r)                                表达式中的最低值


分组依据:只有分组的条件才能作为分组的单独查询字段


主函数作为查询函数,只能出现在having子句中,不能出现在where子句中


完整查询顺序:

select                    from

where

group by               having

order by


注:当主函数嵌套的时候,不允许任何单独查询字段


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值