資源描述:
《java學(xué)習(xí)之oracle基礎(chǔ)詳解》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、java程序員學(xué)習(xí)(二)oracle基礎(chǔ)詳解(二)oracle查詢語句和數(shù)據(jù)排序分類:oracle2012-12-0309:072670人閱讀評論(17)收藏舉報本文所以練習(xí)都是基于oracle自帶提供的一個數(shù)據(jù)庫進(jìn)行的。數(shù)據(jù)庫中包含員工表emp。部門信息表dept。員工工資工總表下面是三個表的表結(jié)構(gòu):一:基本查詢語句1.最簡單的查詢所有列語句Select*fromemp;2.查詢指定列表的查詢語句Selectempno,ename,salfromemp;注意:oracle默認(rèn)的字符型和日期型數(shù)據(jù)是左對齊。而數(shù)字?jǐn)?shù)
2、據(jù)是右對齊3.帶有簡單算術(shù)運算符的簡單查詢:Selectempno,ename,sal+500fromemp;注意:oracle中簡單運算符的優(yōu)先級:1)先乘除,后加減2)同一優(yōu)先級次序是從左到右3)如使用了括號。先運算括號內(nèi)4.在sql語句中使用列的別名Selectempnoas"num",enamename,(sal+500)*12"annualsalary"fromemp;從上面sql語句我們可以看出。只需在列名和別名之間放上as或者空格就可以把列名改為別名。字符串別名需要加上雙引號。5.連接運算符Selec
3、tename
4、
5、"每年的工資為"
6、
7、(sal+500)*12"annualsalary"fromemp;Oracle中的連接符是由兩個豎線(
8、
9、),用于把一個或多個列或字符串連接在一起。6.去重運算符distinctSelectdeptnofromemp;Selectdistinctdeptnofromemp;從上面可以看出。查詢員工表中所有員工的部門號。在第一個查詢語句中。沒有用distinct去重。第二個用到distinct去重之后。所有部門號相同的數(shù)據(jù)都去掉了二.限制性查詢和數(shù)據(jù)排序1.where關(guān)鍵字。其后
10、跟限制性條件。條件由列名、字符串和一些比較預(yù)算附等組成。條件格式:表達(dá)式opera表達(dá)式這里的opera可為:>,>=,<,<=,=,<>(或),!=除了這些oracle還提供了betweenand、in和like限制條件例句:Select*fromempwheresal>=2000;2.使用betweenand比較Select*fromempwheresalbetween2000and3000;獲得工作在2000和3000之間的所有數(shù)據(jù)。值得注意1.betweenand也可以用于時間的比較。此時時間要用單引號。2
11、.如果想查詢不在某一區(qū)間的數(shù)據(jù)。直接在between前面加not就可以3.使用in比較符查找工作為saleman、clerk和manager的人Select*fromempwherejobin('SALESMAN','CLERK','MANAGER');附:如果想查找數(shù)據(jù)不在所給的元素中。可以直接在in前面加not4.使用like比較符Select*fromempwherejoblike'SA%';上訴例子指的就是查詢工作名以SA開頭的所有員工信息?!?”表示0個或多個字符“-"表示一個且只能是一個字符注意:這里有
12、一點要注意的是。Where后面的查詢條件中的值中字符串是區(qū)分大小寫的。筆者在剛才做實驗的時候。把SA寫成sa。一直不出結(jié)果。所以請大家注意這一點。5.轉(zhuǎn)移字符:”“6.Orderby子句Select*fromempwherejoblike'SA%'orderbysal;由上面我們可以發(fā)現(xiàn)。我們查詢到的結(jié)果按工資從小到大排好了順序。Oracle查詢數(shù)據(jù)中如果用到orderby進(jìn)行排序的話。默認(rèn)的排序為(ASC)升序。如果想要降序的話用DESC注意:1.如果查詢中不使用orderby。結(jié)果次序不確定。即兩次查詢。次序
13、可能不一樣2.如果使用了orderby子句。其一定是sql語句中的最后一個子句7.orderby子句中使用別名或表達(dá)式。Selectename,(500+sal)*12annualsalfromempwherejoblike'SA%'orderbyannualsal;Oracle進(jìn)行排序時可以用別名作為排序列。也可以用表達(dá)式、注:1.oracle也可以用列號作為排序的規(guī)則。但是這種情況很少用。因為用列號排序不太明確2.Oracle中排序也可以用多列作為排序標(biāo)準(zhǔn),中間用逗號隔開。Selectename,(500+sa
14、l)*12annualsalfromempwherejoblike'SA%'orderbyannualsal,ename;