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>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值