oracle查询优化改写技巧和案例(学习笔记)

oracle查询优化改写技巧和案例(学习笔记)

ID:9285525

大小:22.36 KB

页数:10页

时间:2018-04-26

oracle查询优化改写技巧和案例(学习笔记)_第1页
oracle查询优化改写技巧和案例(学习笔记)_第2页
oracle查询优化改写技巧和案例(学习笔记)_第3页
oracle查询优化改写技巧和案例(学习笔记)_第4页
oracle查询优化改写技巧和案例(学习笔记)_第5页
资源描述:

《oracle查询优化改写技巧和案例(学习笔记)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、oracle查询优化改写技巧和案例(学习笔记)第一章1.4将空值转换成实际值函数coalesce(exp1,exp2,...)  返回第一个为非空的值,避免了返回空值;1.5查找满足多个条件的行用到or:只要达到其中一个条件就可以的;   查询所有的提成的员工:即提成不为空,commisNOT NULL;这个很好的例子;  用括号把多个条件给分隔开;1.8在where字句中引用别名的列;  即要引用别名的列时必须是一张表中的字段;   select*from(salas工资,commas提成 fromemp) xwhere工资

2、>2000;1.9拼接列用“

3、

4、”把各列连起来员工的工作是:ename 

5、

6、‘的工作是’

7、

8、job1.10在slect语句中使用条件逻辑即用case来解决:格式为   字段,    case     when   then  ;     when   then  ;      else          ;   end as 别名情景:当工资<2000元时,就返回“过低”,<4000就返回“过高”,复习考题:(P9)要按照工资档次统计人数;1.11限制返回的行数用rownum是依次对数据做出的标识,是所有的数据取出来后才能确定

9、其序号;rownum<=2而不能rownum=2;查询某个序号可以这样:select*from(selectrownumassn,emp.*fromemp)whererownum<=2) wheresn=2;1.12从表中随机返回n条记录先随机排序,再取数据(正确):selectempno,enamefrom(selectempno,enamefromemporderbydbms_random.value())whererownum<=3;先取数据再随机排序(错误):selectempno,enamefromemp where

10、rownum<=3 orderbydbms_random.value();1.13模糊查询通配符主要有“like"、"_"、"%"如果查询中包含通配符就要用到转义字符:select*fromvwherevnamelike'_like'ESCAPE '';第二章  给查询结果排序 2.1以指定的次序返回查询结果 ASC:升序排序,从小到大排序;desc:倒序排序,即从大到小; orderby3asc:表示按第三列排序:这种排序适用于该列取值不定时或者说经常改变的列,很方便,比如查询的列增加了,而我们只是排序第一列;2.2按多

11、个字段排序排序的字段要用","分开,比如:orderby Adesc,Basc;2.3按字符串排序用到了substr()函数;主要是运用了快速查找顾客的电话的尾号4的顺序;substr(phone_number,-4)表示后四位;2.4translate()函数 translate(expr,from_string,to_string):from_string和to_string以字符为单位,对应字符一一替换; 如果to_string为空,则返回空值;如果to_string对应的位置没有字符,删除from_string中列出的

12、字符将会被消掉; 运用:2.5按数字和字母混合字符串中的字母排序把重要的东西提取出来,次要的东西踢掉,这道题是对translate的运用;先构造视图createorreplaceview v asselectempno

13、

14、''

15、

16、enameasdatafromemp;selectdata,translate(data,'-0123456789','-')asenamefromvorderby2;2.6处理排序空值 在orderby 的后面加个NULLS FIRST或NULLSLAST;2.7根据条件不同列中的值来排序领导对工资

17、在1000到2000的感兴趣;selectempnoas编码,enameas姓名,salas工资fromempwheredeptmo=30orderbycasewhensal>=1000andsal<2000 then1else2end,3; 第三章 操作多个表(P要操作)2015/04/2917:003.1unionall与空字符串  空字符串不等于空值;3.2union与or 一般不用unionall,这样避免的重复的数据;(P25要复习) 为了消除bitmapconvert的影响:altersessionset"_b_t

18、ree_bitmap_plans"=false; 但有是用union或or会被忽略,从而出现错误;不过加入一个唯一标识后,即保证了正 确去重,又防止了不该发生的去重。还可以用rowid来解决union或or的去重问题;数据取自视图用的是rownum;createorrepla

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。