版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第3章限制行和對數(shù)據(jù)排序3.1WHERE子句的用法WHERE定義了SELECT將返回哪些行。條件“condition”指定了必須存在什么或者必須滿足什么條件。Oracle9i搜索每一記錄以確定條件是否為TRUE。如果記錄滿足搜索指定的條件,那么查詢結(jié)果就將返回它?!癱ondition”可以是任何測試真或假的有效表達式。對于表的一個簡單搜索來說,WHERE子句使用以下格式:<columnname><comparisonoperator><anothernamedcolumnorvalue>SELECT[DISTINCT|UNIQUE|ALL]{*
|{columnname|expr}[[AS]column_alias]
[,...n]}FROMtablename
[WHEREcondition]
[ORDERBY[expr|position|column_alias][ASC|DESC]]3.1WHERE子句的用法“condition”可以用以下幾種方法定義:表達式之間的比較(=、>、!=等等)。一個表達式和一個查詢之間的比較。一列表達式和查詢中的一列表達式之間的比較。一個表達式和一個列表的任一(ANY)或所有成員之間的比較(ALL)?;蛘呤且粋€表達式和從查詢中得到的值之間的比較。測試一個表達式在(IN)或不在(NOTIN)一個列表中,或者在(IN)或不在(NOTIN)查詢的結(jié)果中。測試是否存在(BETWEEN)或不在(NOTBETWEEN)一個值和另一個值之間。測試表達式是否為空(ISNULL)或不為空(ISNOTNULL)。測試一個查詢是否存在(EXISTS)或不存在(NOTEXISTS)結(jié)果。使用LIKE進行模式匹配。一個下劃線“_”表示任意一個字符。一個百分號“%”表示任意數(shù)目的空格或字符,包括0個空格或字符。以上任何條件使用AND或OR的組合。3.2比較運算符數(shù)學比較運算符=等于>大于,只返回其值大于指定條件中的值的記錄(不包括剛好符合指定條件的值)。<小于,只返回其值小于指定條件中的值的記錄(不包括剛好符合指定條件的值)。<>、!=或^=不等于<=小于或等于>=大于或等于3.2比較運算符其他比較運算符[NOT]BETWEENxANDy允許用戶表示一個范圍,可以使用可選的NOT。[NOT]IN(x,y,…)與OR邏輯運算符相似??梢运阉鳚M足括號中包括的至少一個條件的記錄??蛇x的NOT取反。[NOT]LIKE如果不能確定具體拼寫時,可以使用LIKE來搜索一種模式。使用可選的NOT表示不應該在結(jié)果中包括包含指定模式的記錄。IS[NOT]NULL允許用戶搜索指定字段沒有項目的記錄。3.2比較運算符1、算術比較運算符例3.1在BOOKS表中查詢價格大于55元的書的書名及銷售價格SQL>selecttitle,retail2frombooks3whereretail>55;3.2比較運算符例3.2在BOOKS表中查詢書名的字母順序在字母ST之后的所有圖書的列表。SQL>selecttitle2frombooks3wheretitle>'ST';3.2比較運算符例3.3在BOOKS表中查詢利潤低于成本的20%的所有圖書的列表。SQL>selecttitle,retail-costprofit,cost2frombooks3whereretail-cost<cost*0.2;3.2比較運算符例3.4查詢所居住州的州名的字母順序在佐治亞(Georgia)州之前的客戶的列表。SQL>selectfirstname,lastname,state2fromcustomers3wherestate<='GA';3.2比較運算符例3.5查詢所有不居住在佐治亞(Georgia)州的客戶的列表。SQL>selectfirstname,lastname,state2fromcustomers3wherestate<>'GA';3.2比較運算符(1)字符串規(guī)則無論何時使用串文字值作為搜索條件的一部分,這個值都必須包括在單引號中。如果目標字段只包括“數(shù)字”,就不需要單引號。記錄中包括的數(shù)據(jù)是區(qū)分大小寫的。3.2比較運算符例3.6查詢所有類別是LITERATURE的圖書列表。SQL>selecttitle,category2frombooks3wherecategory='literature';SQL>selecttitle,category2frombooks3wherecategory='LITERATURE';3.2比較運算符例3.7查詢ISBN號為2147428890的書的ISBN號及書名。SQL>selectisbn,title2frombooks3whereisbn='2147428890';SQL>selectisbn,title2frombooks3whereisbn=2147428890;3.2比較運算符(2)日期規(guī)則Oracle9i默認使用DD-MM-YY顯示日期,MON是月份的標準三個字母縮寫。必須將日期值包括在單引號中。3.2比較運算符例3.8查詢2001年1月21日出版的圖書的書名、出版社編號和出版日期。SQL>selecttitle,pubdate,pubid2frombooks3wherepubdate='21-1月-2001';3.2比較運算符例3.9查詢2001年之后出版的圖書的ISBN、書名和出版日期。SQL>selectisbn,title,pubdate2frombooks3wherepubdate>'31-12月-2001';3.2比較運算符2、BETWEEN…AND運算符在查詢時,如果要求某列的數(shù)值在某個區(qū)間范圍內(nèi),則可以使用BETWEEN…AND運算符。
例3.10查詢出版社編號在1到3之間的所有圖書的書名和出版社編號。SQL>selecttitle,pubid2frombooks3wherepubidbetween1and3;3.2比較運算符例3.11查詢出版日期在99年1月1日到01年12月31日之間的圖書的書名及出版日期。SQL>selecttitle,pubdate2frombooks3wherepubdatebetween'01-1月-99'and'31-12月-01';3.2比較運算符3、IN運算符IN運算符返回與列出的值中指定的某一個值相等的記錄。Oracle9i語法要求使用逗號將列出的項目分開,而且必須將整個列表都包括在圓括號中。例3.12查詢編號為1、2、5的出版社所出版的圖書書名及出版社編號。SQL>selecttitle,pubid2frombooks3wherepubidin(1,2,5);3.2比較運算符例3.13查詢不在GA、FL和CA州居住的客戶的姓氏、名字及所居住的州。SQL>selectfirstname,lastname,state2fromcustomers3wherestatenotin('GA','FL','CA');3.2比較運算符4、LIKE(模式匹配)運算符在查詢時,經(jīng)常需要對字符串進行比較。在比較中,有的要求兩個字符串完全相同,有的要求部分字符相同,而其余的字符可以任意。LIKE運算符可以和通配符一起使用,用來查找與你所描述的模式相匹配的記錄。LIKE提供兩種通配符:1)百分號(%):表示“任意數(shù)量的字符”。2)下劃線(_):表示“一個字符”。百分號和下劃線可以在同一個搜索條件中使用,以便創(chuàng)建更為復雜的搜索模式。3.2比較運算符例3.14查詢所有姓氏以字母P開始的客戶的姓氏和名字。SQL>selectlastname,firstname2fromcustomers3wherelastnamelike'P%';3.2比較運算符例3.15customers表中客戶編號為四位數(shù)字,查詢客戶編號的前兩位數(shù)字是“1”和“0”,第三位是任意字符,最后一位數(shù)字是“9”的客戶編號及姓氏、名字。SQL>selectcustomer#,lastname,firstname2fromcustomers3wherecustomer#like'10_9';3.2比較運算符例3.16查詢ISBN號的第2位數(shù)字是4,最后一位數(shù)字是0的圖書列表。SQL>selectisbn,title2frombooks3whereisbnlike'_4%0';3.2比較運算符例3.17查詢出版社名字是以字母P打頭,并且包含I的出版社信息。SQL>select*frompublisher2wherenamelike'P%I%';3.2比較運算符5、NULL值的比較我們使用的數(shù)據(jù)庫一般是反映實際的具體情況,但有時某些數(shù)據(jù)在實際情況中還不存在。例如:CUSTOMERS表中有的客戶是其他客戶介紹的,有的不是。如果某個客戶不是其他客戶介紹的,那么他的REFERRED就不存在,即既不等于0、空格,也不等于某個值,而是一個未知的值,我們稱他的REFERRED的值為空值。空值實際是指一種未知的、不存在的或不可應用的數(shù)據(jù),通常用NULL表示。NULL僅僅是一個符號,它不等同于零和空格,所以NULL不能與等號之類的運算符連用。如果需要識別包含一個NULL值的記錄,應該使用ISNULL比較運算符。3.2比較運算符例3.18向客戶發(fā)貨時,發(fā)貨的日期會輸入到ORDERS表中。如果Shipdate字段中沒有顯示一個日期,則表示還沒有發(fā)貨。請查詢?nèi)魏芜€沒有發(fā)給客戶的訂單。SQL>selectorder#2fromorders3whereshipdateisnull;3.2比較運算符例3.19查詢經(jīng)由其他客戶介紹的客戶,并顯示其介紹人的客戶編號。SQL>selectcustomer#,lastname,firstname,referred2fromcustomers3wherereferredisnotnull;3.3邏輯運算符在WHERE子句中,也可以通過邏輯運算符連接多個條件,構(gòu)成一個更復雜的條件進行查詢。在WHERE子句中可以使用三種邏輯運算符:運算符含義NOT邏輯非。選擇不滿足條件的行。AND邏輯與。選擇列值同時滿足多個條件的行。OR邏輯或。選擇列值滿足任一條件的行。3.3邏輯運算符在WHERE子句中,比較運算符的優(yōu)先級高于邏輯運算符。在邏輯運算符中,邏輯非(NOT)的優(yōu)先級最高,邏輯與(AND)次之,邏輯或(OR)優(yōu)先級最低。如果需要更改計算順序,只需使用圓括號指定首先執(zhí)行的運算符即可。3.3邏輯運算符例3.20查詢由編號為3的出版社出版,并且屬于Computer類的圖書列表。SQL>selecttitle,pubid,category2frombooks3wherepubid=3and4category='COMPUTER';3.3邏輯運算符例3.21查詢地址是以字母P開始的,或者郵編以3開始的客戶信息。SQL>selectlastname,address,zip2fromcustomers3whereaddresslike'P%'orziplike'3%';3.3邏輯運算符例3.22查詢成本高于15美元,并且由編號為4的出版社出版,或者屬于Familylife類的圖書列表。SQL>selecttitle,category,pubid,cost2frombooks3wherecategory='FAMILYLIFE'4ORpubid=45ANDcost>15;3.3邏輯運算符SQL>selecttitle,category,pubid,cost2frombooks3where(category='FAMILYLIFE'4ORpubid=4)5ANDcost>15;3.4ORDERBY子句SELECT語句獲得的數(shù)據(jù)一般是沒有按規(guī)律進行排序的。也就是說,這一次提取出的數(shù)據(jù)組的排列順序與下一次提取出的數(shù)據(jù)組的排列順序可以截然不同。所以為了方便閱讀和使用,最好對查詢結(jié)果進行一次排序。在成功地選擇所要的數(shù)據(jù)后,可以利用ORDERBY子句對這些數(shù)據(jù)以某一列或數(shù)個列組合當作鍵值依序排列,排序的方向可以按鍵值由大到小或由小到大排列,這樣,ORDERBY子句就為某個查詢結(jié)果定義一個特定的行順序。SELECT[DISTINCT|UNIQUE|ALL]{*
|{columnname|expr}[[AS]column_alias]
[,...n]}FROMtablename
[WHEREcondition]
[ORDERBY{expr[,expr]…| position[,position]…} column_alias[,alias] [ASC|DESC]]3.4ORDERBY子句例3.22查詢出版社信息,并且按照出版社名字的升序排列。SQL>select*frompublisher2orderbyname;3.4ORDERBY子句1、排列規(guī)則按升序排列時,值將按照以下順序列出:
1)數(shù)值
2)字符值
3)NULL值如果希望按升序排列,并且首先列出NULL值,可以在ORDERBY子句中添加NULLSFIRST。例3.23查詢每個客戶的地址信息,并且按照客戶地址的升序排列。SQL>selectlastname,firstname,address2fromcustomers3orderbyaddress;3.4ORDERBY子句例3.24查詢客戶的姓氏、名字和介紹人的編號(referred),并且按照referred的升序排列。SQL>selectlastname,firstname,referred2fromcustomers3orderbyreferred;3.4ORDERBY子句例3.25查詢客戶的姓氏、名字和介紹人的編號(referred),并且按照referred的升序排列,并且首先列出NULL值。SQL>selectlastname,firstname,referred2fromcustomers3orderbyreferredNULLSFIRST;3.4ORDERBY子句2、降序排列除非指定了DESC以使用降序,否則在默認情況下,ORDERBY子句將按升序進行排列。例3.26查詢每個客戶的地址信息,并且按照客戶地址的降序排列。SQL>selectlastname,firstname,address2fromcustomers3orderbyaddressdesc;3.4ORDERBY子句3、按列別名排序如果在SELECT語句中為一個列指定了列別名,而且在ORDERBY子句中也使用了這個列,那么可以在ORDERBY子句中使用相同的別名。例3.27題目同例3.23,查詢每個客戶的地址信息,并且按照客戶地址的升序排列。SQL>selectlastname,firstname,2address"customeraddress"3fromcustomers4orderby"customeraddress";3.4ORDERBY子句4、按SELECT順序排列ORDERBY子句還可以使用SELECT子句中的列的position(位置)來完成。例3.28題目同例3.23,查詢每個客戶的地址信息,并且按照客戶地址的升序排列。SQL>selectlastname,firstname,address2fromcustomers3orderby3;3.4ORDERBY子句5、次排序在ORDERBY子句中只指定了一列時,稱為“主排序”。如果主排序中的兩行或更多行完全相同,那么“次排序”提供另一個進行排序的字段。選擇按多列排序,首先由第一個列名確定順序,若第一排序列值相同,再按第二個列名排序,第二排序列值相同,再按第三列排序,依此類推。如果按多列進行排序時,應分別指出它們相應的列名及有關的遞增或遞減方式。在OEDERBY子句中可以使用的列數(shù)限制是255。3.4ORDERBY子句例3.29查詢客戶信息,按照客戶所居住的州的降序進行排序,如果有多個居住在某個特定州的客戶時,將按城市的升序?qū)蛻暨M行排序。SQL>selectlastname,firstname,state,city2fromcustomers3orderbystatedesc,city;3.4ORDERBY子句注意:在SELECT子句中可以列出用于排序的列,也可以不列出用于排序的列。如果在SELECT子句中使用了DISTINCT或UNIQUE關鍵字,那么“只能”使用在SELECT子句中明確列出的列進行排序。DESC只應用于它之前的那一列。3.4ORDERBY子句例3.30查詢客戶信息,按照客戶所居住的州的降序進行排序,如果有多個居住在某個特定州的客戶時,將按城市的升序?qū)蛻暨M行排序,但是并不顯示城市信息。SQL>selectlastname,firstname,state2fromcustomers3orderbystatedesc,city;3.4ORDERBY子句例3.31在例3.30的SELECT子句中使用DISTINCT關鍵字,查看結(jié)果。SQL>selectdistinctlastname,firstname,state2fromcustomers3orderbystatedesc,city;3.4ORDERBY子句例3.32查詢訂單
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 動手實踐對小學生自然科學興趣的培養(yǎng)研究
- 作業(yè)設計中的數(shù)學思維啟發(fā)
- 《獨處材料作文》課件
- 辦公環(huán)境下實驗室內(nèi)網(wǎng)的配置與管理
- 辦公空間中團隊協(xié)作游戲的實踐與效果評估
- 企業(yè)研發(fā)中心實驗室建設規(guī)劃實踐
- 2025年中國壓電器件市場供需格局及未來發(fā)展趨勢報告
- 2025年中國紙巾(濕巾)市場行情動態(tài)分析及發(fā)展前景趨勢預測報告
- 中國條碼打印機行業(yè)市場發(fā)展現(xiàn)狀及前景趨勢與投資分析研究報告(2024-2030版)
- 營養(yǎng)麥片項目可行性研究報告
- 工程量清單報價表(1)
- 論倒簽提單的效力和后果
- 設備單機試車記錄C
- 公司董事長在集團年度務虛會上的講話發(fā)言稿
- 多元化經(jīng)營的陷阱——巨人集團失敗的財務分析
- 市政道路工程_混凝土路面檢驗批_樣板
- 《語言習得與外語教學》-課程教學大綱
- 旅行社踩線邀請函
- 年產(chǎn)2億袋板藍根顆粒劑車間工藝設計
- 基數(shù)詞-與序數(shù)詞PPT優(yōu)秀課件
- 雙壁波紋管出廠合格證(共4頁)
評論
0/150
提交評論