Oracle sql高级编程学习笔记(一)核心SQL语句
Oracle sql高级编程学习笔记(一)核心SQL语句
一,select 语句执行顺序
5 SELECT <column list> 1 FROM <source object list> 1.1 FROM <left source object > <join type > JOIN <right source object> ON <on predicates> 2 WHERE <where predicates> 3 GROUP BY <group by expressions> 4 HAVING <having predicates> 5 ORDER BY <order by list>
(1)先执行From 后面的子句或者链接子句,查询出初始数据集;
(2)执行where子句,精简初始结果集,从初始数据集中查询出符合where条件的数据集;
(3)执行group by 子句,将from与where查询出的结果集进行聚合分组;
(4)HAVING子句,在上述的结果集中查询出该子句中的条件为真的数据集;
(5)SELECT 语句,返回最终结果集中需要显示的列;
(6)ORDER BY子句,对上述查询出的数据集进行排序;排序时要注意数据量,如果数据量比较小,就在内存中排序,如果很大,则要用到临时磁盘空间来进行,所以排序时数据量大小非常重要;
二,Insert 语句的多表插入
INSERT ALL WHEN <condition1> THEN INTO <table1> WHEN<condition2> THEN INTO <table2> .................................. SELECT <column list> FROM ........
使用夺标查询时,要注意when条件,避免重复插入到多个表。
三,MERGE语句 具有按条件获取要更新或者要插入到表中的数据集,然后从1个或者多个源头对表进行更新或者向表中插入行两方面的能力。
MERGE <hint> INTO <table name> USING <table,view or query> ON (<condition>) WHEN MATCHED THEN <update_clause> DELETE <where_clause> WHEN NOT MATCHED THEN <inset_clause>