oracle

單行函數(shù)

日期可以做減操作。
months_between:兩個日期相差的月數(shù)
add_months: 加上若干個月后的時間
last_day: 當前月的最后一天
next_day: 指定日期的下一個日期
round:也可以對日期進行四舍五入操作荆秦。

轉換函數(shù)

顯示轉換比隱式轉換性能高式镐。

to_date('1999-01-01','yyyy-mm-dd'):按照指定格式轉換成日期
to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'):按指定格式轉成字符串
to_number('123'):將字符串轉成數(shù)字

通用函數(shù)

nvl(expr1,expr2)
nvl(expr1,expr2,expr3):當expr1不為空返回expr2 否則返回expr3
nullif(expr1,expr2):當expr1=expr2時返回null 否則返回expr1
coalesce(expr1,expr2....exprn):找到參數(shù)列表中第一個不為空的值

條件表達式

case表達式:標準語法

select ename,job,sal 漲前工資,
    case job when 'PRESIDENT' then sal+1000
                    when 'MANAGER' then sal+800
                    else sal+400
     end 漲后工資
from emp;

decode函數(shù):Oracle自己的語法

select ename,job,sal 漲前工資, decode(job,'PRESIDENT',sal+1000,
                                                                      'MANAGER', sal+800,
                                                                      sal+400) 漲后工資
from emp;

組函數(shù)

組函數(shù)會自動慮空床玻,只統(tǒng)計非空的記錄

select sum(comm)/count(*) 方式一,sum(comm)/count(comm) 方式二, avg(comm) 方式三 from emp;

  方式一     方式二     方式三                                                                                                                      
----------      ----------      ----------                                                                                                                      
157.142857        550        550   

嵌套濾空函數(shù)使組函數(shù)無法忽略空值

select sum(comm)/count(*) 方式一, sum(comm)/count(nvl(comm,0)) 方式二, avg(comm) 方式三 from emp;

    方式一     方式二     方式三                                                                                                                      
---------- ---------- ----------                                                                                                                      
157.142857 157.142857        550  

注意: 所有沒有包含在select的組函數(shù)中的列赏陵,必須在group by后面

group by作用于多列:先按照第一列分組,如果相同买乃,則第二列分組触创;以此類推

-- 按部門求部門的平均工資,選出大于2000的部門
select deptno,avg(sal)
from emp
group by deptno
having avg(sal)>2000;
-- having  過濾必須在分組后使用,having是先分組后過濾为牍,注意性能問題哼绑。如果可以先用where 過濾后 在分組性能會更好。

group by的增強

select deptno,job,sum(sal)
from emp
group by rollup(deptno,job);
/*
怎么分組:
group by deptno,job
+
group by deptno
+
group by null
=
group by rollup(deptno,job)
----------------------------------
group by rollup(a,b)
=
group by a,b
 +
group by a
+
group by null
*/

多表查詢

從笛卡爾積的集合中通過我們指定的條件選出正確的記錄

等值鏈接

--查詢員工信息碉咆,要求顯示員工的編號抖韩,姓名,月薪和部門名稱
select e.empno,e.ename,e.sal,d.dname
from emp e,dept d
where e.deptno=d.deptno;

不等值連接

-- 查詢員工的工資級別:編號 姓名 月薪和級別
select e.empno,e.ename,e.sal,s.grade
from emp e,salgrade s
where e.sal between s.losal and s.hisal;

外連接

當連接條件不成立時疫铜,任然希望在結果中包含某些不成立的記錄

左外連接

當連接條件不成立時茂浮,等號左邊所代表的表的信息仍然顯示
寫法: where e.deptno(+)=d.deptno
右外連接
當連接條件不成立時,等號右邊所代表的表的信息仍然顯示
寫法: where e.deptno=d.deptno(+)

自連接: 會產生笛卡爾積 最好只用于小表

利用表的別名壳咕,將同一張表視為多張表

對于大的表席揽,又有自連接查詢的需求時,Oracle提供了層次查詢谓厘。
connect by

select level,empno,ename,mgr
from emp
connect by prior empno=mgr
start with mgr is null
order by 1;
-- connect by prior empno=mgr  前一次查詢的empno員工號碼等于本次查詢的老板號碼mgr
-- start with mgr is null 層次查詢的起始條件幌羞。mgr老板號碼為null 也就是從boss開始
/*
     LEVEL      EMPNO ENAME             MGR                                                                                                           
---------- ---------- ---------- ----------                                                                                                           
         1       7839 KING                                                                                                                            
         2       7566 JONES            7839                                                                                                           
         2       7698 BLAKE            7839                                                                                                           
         2       7782 CLARK            7839                                                                                                           
         3       7902 FORD             7566                                                                                                           
         3       7521 WARD             7698                                                                                                           
         3       7900 JAMES            7698                                                                                                           
         3       7934 MILLER           7782                                                                                                           
         3       7499 ALLEN            7698                                                                                                           
         3       7788 SCOTT            7566                                                                                                           
         3       7654 MARTIN           7698                                                                                                           

     LEVEL      EMPNO ENAME             MGR                                                                                                           
---------- ---------- ---------- ----------                                                                                                           
         3       7844 TURNER           7698                                                                                                           
         4       7876 ADAMS            7788                                                                                                           
         4       7369 SMITH            7902  
*/
/*
第一次: where mgr is null =>  7839
第二次: where mgr = 7839  => 7566 7698  7782
第三次:  where mgr in (7566,7698,7782)
*/
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市竟稳,隨后出現(xiàn)的幾起案子属桦,更是在濱河造成了極大的恐慌,老刑警劉巖他爸,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件聂宾,死亡現(xiàn)場離奇詭異,居然都是意外死亡诊笤,警方通過查閱死者的電腦和手機系谐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讨跟,“玉大人纪他,你說我怎么就攤上這事⌒碓撸” “怎么了止喷?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長混聊。 經常有香客問我弹谁,道長,這世上最難降的妖魔是什么句喜? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任预愤,我火速辦了婚禮,結果婚禮上咳胃,老公的妹妹穿的比我還像新娘植康。我一直安慰自己,他們只是感情好展懈,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布销睁。 她就那樣靜靜地躺著供璧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪冻记。 梳的紋絲不亂的頭發(fā)上睡毒,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天,我揣著相機與錄音冗栗,去河邊找鬼演顾。 笑死,一個胖子當著我的面吹牛隅居,可吹牛的內容都是我干的钠至。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼胎源,長吁一口氣:“原來是場噩夢啊……” “哼棉钧!你這毒婦竟也來了?” 一聲冷哼從身側響起乒融,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤掰盘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赞季,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愧捕,經...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年申钩,在試婚紗的時候發(fā)現(xiàn)自己被綠了次绘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡撒遣,死狀恐怖邮偎,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情义黎,我是刑警寧澤禾进,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站廉涕,受9級特大地震影響泻云,放射性物質發(fā)生泄漏。R本人自食惡果不足惜狐蜕,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一宠纯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧层释,春花似錦婆瓜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽个初。三九已至,卻和暖如春蒙秒,著一層夾襖步出監(jiān)牢的瞬間勃黍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工晕讲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人马澈。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓瓢省,卻偏偏與公主長得像,于是被迫代替她去往敵國和親痊班。 傳聞我的和親對象是個殘疾皇子勤婚,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內容

  • 轉自:http://www.blogjava.net/kiant/articles/234781.html Ora...
    奧莉安娜的棒棒糖閱讀 2,571評論 0 6
  • 1.簡介 數(shù)據(jù)存儲有哪些方式馒胆?電子表格,紙質文件凝果,數(shù)據(jù)庫祝迂。 那么究竟什么是關系型數(shù)據(jù)庫? 目前對數(shù)據(jù)庫的分類主要是...
    喬震閱讀 1,709評論 0 2
  • 1.基本SQL select語句1.1 sqlplus登陸1.2sqlplus 的基本操作1.3基本select語...
    木魚_cc閱讀 881評論 0 1
  • 果然是瞬息萬變,突然多了半年山害,感覺瞬間像放下了什么一樣纠俭,心情變得開心輕松了許多,多出的這半年一定要好好的浪慌,不能荒廢...
    M代什么M閱讀 155評論 0 0
  • 春節(jié)剛過冤荆,很想找個時間靜下心來寫點東西。 自從去年注冊會計師考試結束权纤,我很久沒有再好好投入學習钓简。每天工作以及閑暇時...
    柯武敏敏兒閱讀 299評論 0 1