4.oracle高级查询

xiaoxiao2021-02-28  89

1.分组需要注意     1.聚合函数只能出现在以下3个地方           字段列表中           having子句中           order by 子句中     2.where,group by、having、order by子句如果同时出现在一个查询语句中,则先后顺序是           1. where           2.先写group by           3.再写having           4.再写order by     3.根据哪一个字段分组,查询时,就只能查询哪个字段,或聚合函数。 2.连接查询(多表连接查询,多表查询)       1.笛卡尔积         一定会在内存中,搞一张大表出来的!          比如,A表有10行,B表有10行,A,B表的笛卡尔积就是100行!         如果,A表1千万行,B表有1亿行,A,B标的笛卡尔积,就很恐怖啊!有可能会造成内存溢出!     2.内连接(inner join)         内连接与笛卡尔积十分相似,最终的结果也是一样的,但是内连接不会先搞一张大表,而是在两张表拼接的时候,同时判断条件!         所以内连接根本就没有大表的产生!     3.外连接         左外连接(left join)         右外连接(right join)         查询所有员工的姓名,工资,及其工资的级别。     4.自连接         一张表,自己连接自己就是自连接。         显示所有员工的上级领导的姓名 3.子查询      1.按子查询出现的位置           where型子查询           from型子查询      2.按子查询返回的结果           标量子查询: 返回一行一列的结果                 在> < = != <= >=之后,只能跟标量子查询!           列子查询 : 返回多行一列的结果                 all、any、in、not in、some(等价于any)                 >all比最大的大  < all 比最小的小                 >any比最小的大 < any 比最大的小           行子查询 :返回一行多列的结果           表子查询 :返回多行多列的结果      3.使用子查询作为update语句中的新值
转载请注明原文地址: https://www.6miu.com/read-73596.html

最新回复(0)