版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、幻燈片1進(jìn)度表:時(shí)間45 minutes30 minutes75 minutes講演練習(xí)總共約束和排序數(shù)據(jù)Copyright Oracle Corporation, 2001.s.幻燈片2課程目標(biāo)從數(shù)據(jù)庫(kù)取回?cái)?shù)據(jù)的時(shí)候,你可能需要限制所顯示的數(shù)據(jù)行,或者將顯示的結(jié)果行排序。本課介紹用來(lái)完成這些工作的 SQL 語(yǔ)句。目標(biāo)完成本課后, 您應(yīng)當(dāng)能夠執(zhí)行下列操作:用一個(gè)查詢限制返回的行用一個(gè)查詢排序返回的行Copyright Oracle Corporation, 2001.s.幻燈片3用選擇限制行在幻燈片的例子中,假定你想要顯示部門 90 中所有的雇員。只返回DEPARTMENT_ID 列值為 90
2、 的行,這種限制方法基于 SQL 的 WHERE 子句。用選擇限制行EMPLOYEES“返回所有在部門90的雇員”Copyright Oracle Corporation, 2001.s.幻燈片4限制選擇的行你能夠用 WHERE 子句限制從查詢返回的行。一個(gè) WHERE 子句包含一個(gè)必須滿足的條件,WHERE 子句緊跟著 FROM 子句。如果條件是 true,返回滿足條件的行。在語(yǔ)法中:WHEREcondition限制查詢滿足條件的行由列名、表達(dá)式、常數(shù)和比較操作組成WHERE 子句能夠比較列值、文字值、算術(shù)表達(dá)式或者函數(shù),WHERE 子句由三個(gè)元素組成:列名比較條件列名、常量或值列表限制選擇
3、的行用 WHERE 子句限制返回的行WHERE 子句跟著 FROM 子句Copyright Oracle Corporation, 2001.s.SELECT*|DISTINCT column|expresalias,.FROMtableWHEREcondition(s);幻燈片5使用 WHERE 子句在例子中,SELECT 語(yǔ)句取回所有雇員的 name,job ID 和 department 號(hào),這些雇員的 department_id 是 90。使用 WHERE 子句Copyright Oracle Corporation, 2001.s.SELECT employee_id, last_n
4、ame, job_id, department_id FROMemployeesWHERE department_id = 90;幻燈片6字符串和日期在 WHERE 子句中字符串和日期必須包含在單引號(hào) ( ) 中。但是,數(shù)字常數(shù)不應(yīng)該包含在單引號(hào)中。所有的字符搜索是大小寫敏感的。在下面的例子中,沒(méi)有行返回,因?yàn)镋MPLOYEES 表的所有名字都是大小寫混合的:SELECT last_name, job_id, department_id FROMemployeesWHERE last_name = WHALEN;Oracle 數(shù)據(jù)庫(kù)以數(shù)字格式日期,表示為:世紀(jì)、年、月、日、小時(shí)、分和秒。默認(rèn)的
5、日期顯示是 DD-MON-RR。注:改變默認(rèn)的日期格式的方法在后面的課程中介紹。教師注釋一些學(xué)生可能會(huì)問(wèn),怎樣覆蓋大小寫敏感,在后面的課程中,函數(shù),例如,UPPER 和 LOWER 來(lái)覆蓋大小寫敏感。介紹,用單行字符串和日期字符串和日期的值放在單引號(hào)中字符值區(qū)分大小寫,日期值是格式敏感的日期的默認(rèn)格式是 DD-MON-RR.Copyright Oracle Corporation, 2001.s.SELECT last_name, job_id, department_id FROMemployeesWHERE last_name =Whalen;幻燈片7比較條件比較條件被用于一個(gè)表達(dá)式與一個(gè)
6、值或與另一個(gè)表達(dá)式的比較。他們以下面的格式被用于 WHERE 子句中:語(yǔ)法.WHEREexpr operator value舉例.WHEREWHERE WHEREhire_date=01-JAN-95salary=6000 last_name=Smith別名不能用在 WHERE 子句中。注:符號(hào) != 和 = 也能夠表示不等于 條件。比較條件Copyright Oracle Corporation, 2001.s.運(yùn)算含義=等于大于=大于等于小于=小于等于不等于幻燈片8使用比較條件在例子中,SELECT 從 EMPLOYEES 表語(yǔ)句取回 last name 和 salary,在這里這些雇員的
7、薪水小于等于 3000。注意,有一個(gè)直接的值 3000 提供給 WHERE 子句。該直接值 3000 與 EMPLOYEES 表中的 SALARY 列的薪水值進(jìn)行比較。使用比較條件Copyright Oracle Corporation, 2001.s.SELECT last_name, salary FROMemployeesWHERE salary= 下限) AND (a =10000 job_id LIKE %MAN%;幻燈片17OR 操作在例子中,兩個(gè)條件之一為真的那些或者收入大于等于$10,000 的雇員都被選擇。都被選擇,因此,任何 job ID 中包含 MANOR 真值表下面的表
8、顯示了用 OR 組合兩個(gè)表達(dá)式的結(jié)果:教師注釋示范:2_or.sql目的:舉例說(shuō)明 OR 運(yùn)算符的使用。ORTRUEFALSENULLTRUETRUETRUETRUEFALSETRUEFALSENULLNULLTRUENULLNULL使用 OR 操作OR 操作要求兩者之一為真即可Copyright Oracle Corporation, 2001.s.SELECT employee_id, last_name, job_id, salary FROMemployeesWHERE ORsalary = 10000 job_id LIKE %MAN%;幻燈片18NOT 操作幻燈片中的例子顯示那些工
9、作崗位不是 IT_PROG、ST_CLERK 或 SA_REP 的雇員的名字和工作崗位。NOT 真值表下面的表顯示了應(yīng)用 NOT 運(yùn)算符到一個(gè)條件的結(jié)果:注:NOT 運(yùn)算符也可以用于另一個(gè) SQL 運(yùn)算符,例如,BETN、LIKE、和 NULL。.WHERE WHERE WHEREWHEREjob_idsalaryNOTNOTIN (AC_ACCOUNT, AD_VP)BETLIKEN 10000 AND 15000 %A%NOT NULLlast_name NOTcommis_pct ISNOTTRUEFALSENULLFALSETRUENULL使用 NOT 操作Copyright Orac
10、le Corporation, 2001.s.SELECT last_name, job_id FROMemployeesWHEREjob_idNOT IN (IT_PROG, ST_CLERK, SA_REP);幻燈片19優(yōu)先規(guī)則優(yōu)先規(guī)則定義表達(dá)式求值和計(jì)算的順序,表中列出了默認(rèn)的優(yōu)先順序。你可以用圓括號(hào)括住你想要先計(jì)算的表達(dá)式來(lái)覆蓋默認(rèn)的優(yōu)先順序。優(yōu)先規(guī)則使用圓括號(hào)改變優(yōu)先規(guī)則Copyright Oracle Corporation, 2001.s.求值順序1算術(shù)運(yùn)算2連字操作3比較操作4IS NOT NULL, LIKE, NOT IN5NOT BETN6NOT 邏輯條件7AND 邏輯條
11、件8OR 邏輯條件幻燈片20AND 操作優(yōu)先的例子在幻燈片的例子中,有兩個(gè)條件:第一個(gè)條件是 job_id 是 AD_PRES 并且薪水高于 15,000。第二個(gè)條件是 job_id 是 SA_REP。因此,該 SELECT 語(yǔ)句讀作: “選擇符合下面條件的行,雇員是董事長(zhǎng) (雇員是銷售代表?!? ,并且收入超過(guò)$15,000,或教師注釋演示:2_sal1.sql目的:舉例說(shuō)明優(yōu)先規(guī)則。優(yōu)先規(guī)則Copyright Oracle Corporation, 2001.s.SELECT last_name, job_id, salary FROMemployeesWHERE job_id = SA_
12、REP ORjob_id = AD_PRES ANDsalary 15000;幻燈片21使用圓括號(hào)在上面的例子中有兩個(gè)條件:第一個(gè)條件是 job_id 是 AD_PRES 或者 SA_REP第二個(gè)條件是薪水高于$15,000。因此,該 SELECT 語(yǔ)句讀作: “選擇符合下面條件的行,雇員是董事長(zhǎng) (超過(guò)$15,000?!? 或者銷售代表,并且收入教師注釋演示:2_sal2.sql目的:舉例說(shuō)明優(yōu)先規(guī)則。優(yōu)先規(guī)則使用圓括號(hào)強(qiáng)制優(yōu)先權(quán)Copyright Oracle Corporation, 2001.s.SELECT last_name, job_id, salary FROMemployee
13、sWHERE (job_id = SA_REP ORjob_id = AD_PRES) ANDsalary 15000;幻燈片22ORDER BY 子句在一個(gè)不明確的查詢結(jié)果中排序返回的行。ORDER BY 子句用于分排序。如果使用了 ORDER BY 子句,它必須位于 SQL 語(yǔ)句的最后。你可以指定一個(gè)表達(dá)式,或者一個(gè)別名,作為排序條件。語(yǔ)法SELECT FROM WHERE ORDER在語(yǔ)法中:expr tablecondition(s)BY column, expr ASC|DESC;指定排序顯示返回的行以升序排序行 (這是默認(rèn)排序)以降序排序行ORDER BY ASCDESC如果未使用
14、 ORDER BY 子句,排序次序就未定義,并且 Oracle 服務(wù)器可能對(duì)于相同查詢的兩次執(zhí)行取回行的順序不同。ORDER BY 子句以指定的順序顯示返回的行。教師注釋讓學(xué)生知道 ORDER BY 子句在查詢完成后執(zhí)行,除非使用了 FOR UPDATE 子句,ORDER BY 子句應(yīng)放在最后。ORDER BY 子句用 ORDER BY 子句排序行ASC: 升序排序,默認(rèn)DESC: 降序排序ORDER BY 子句在 SELECT 語(yǔ)句的最后Copyright Oracle Corporation, 2001.s.SELECTlast_name, job_id, department_id, h
15、ire_date FROMemployees;ORDER BY hire date幻燈片23數(shù)據(jù)的默認(rèn)排序默認(rèn)的排序順序是升序:對(duì)于數(shù)字值,小的只值對(duì)于日期,早的日期面顯示例如,1999。面顯示例如,01-JAN-92 在 01-JAN-95 。對(duì)于字符值,依字母順序顯示例如,A 第一,Z 最后。對(duì)于空值,升序排序時(shí)顯示在最后,降序排序時(shí)顯示在最前面。反轉(zhuǎn)默認(rèn)排序?yàn)榱孙@示倒序排序的行,在 ORDER BY 子句的列名后面指定 DESC 關(guān)鍵字?;脽羝械睦影凑展蛦T的受雇日期從近到遠(yuǎn)排序。教師注釋讓學(xué)生知道,也能夠以 SELECT 列表中的列號(hào)排序。下面的例子用 salary 以逆序排序輸出:
16、SELECTFROM ORDER BYlast_name, salary employees2 DESC;降序排序Copyright Oracle Corporation, 2001.s.SELECTlast_name, job_id, department_id, hire_date FROMemployeesORDER BY hire_dateDESC;幻燈片24用列別名排序能夠在 ORDER BY 子句中使用列別名?;脽羝睦佑媚晷脚判驍?shù)據(jù)。教師注釋在,SELECT 語(yǔ)句的執(zhí)行順序如下:FROM 子句 WHERE 子句 SELECT 子句 ORDER BY 子句用列別名排序Copyri
17、ght Oracle Corporation, 2001.s.SELECT employee_id, last_name, salary*12 FROMemployeesORDER BYannsal;annsal幻燈片25用多列排序你可以用多列排序查詢結(jié)果。排序的限制是所給表中的列數(shù)。在 ORDER BY 子句中,多個(gè)指定的列名之間用逗號(hào)分開(kāi)。如果你想要倒排序一個(gè)列,在該列名后面指定 DESC。你也可以用沒(méi)有包括在 SELECT 子句中的列排序。例子顯示所有雇員的名字和薪水。先用部門號(hào)順序排序結(jié)果,再用薪水逆序排序。SELECTFROMlast_name, salaryemployeesORD
18、ER BY department_id, salary DESC;教師注釋以升敘排序顯示 DEPARTMENT_ID 列,同時(shí)以降序排序顯示 SALARY 列。多列排序ORDER BY 列表的順序就是排序的順序你可以排序一個(gè)不在 SELECT 列表中的列Copyright Oracle Corporation, 2001.s.SELECT last_name, department_id, salary FROMemployeesORDER BY department_id, salary DESC;幻燈片26小結(jié)在本可中,你應(yīng)該已經(jīng)學(xué)會(huì)關(guān)于限制和排序 SELECT 語(yǔ)句返回的行。你也應(yīng)該已經(jīng)
19、學(xué)會(huì)實(shí)現(xiàn)各種運(yùn)算和使用條件。小結(jié)在本課中, 您應(yīng)該已經(jīng)學(xué)會(huì)如何:使用 WHERE 子句限制輸出行使用比較條件使用 BETN, IN, LIKE, 和 NULL 條件應(yīng)用邏輯 AND, OR, 和 NOT 操作使用 ORDER BY 子句排序輸出的行Copyright Oracle Corporation, 2001.s.SELECT*|DISTINCT column|expresalias,.FROMtableWHEREcondition(s)ORDER BY column, expr, alias ASC|DESC;幻燈片27練習(xí) 2概覽本章的作業(yè)包括使用 WHERE 子句和 ORDER B
20、Y 子句的多種練習(xí)。練習(xí) 2 概覽本章練習(xí)包括下面的:選擇數(shù)據(jù)并且改變行顯示的順序用 WHERE 子句限制行用 ORDER BY 子句排序行Copyright Oracle Corporation, 2001.s.幻燈片 28練習(xí) 21.創(chuàng)建一個(gè)查詢,顯示收入超過(guò) $12,000 的雇員的名字和薪水。將件 lab2_1.sql 中,運(yùn)行該查詢。SQL語(yǔ)句存到文SELECT last_name, salary FROM employeesWHERE salary 12000;2.創(chuàng)建一個(gè)查詢,顯示雇員號(hào)為 176 的雇員的名字和部門號(hào)。SELECT last_name, department_i
21、d FROM employeesWHERE employee_id = 176;3.修改 lab2_1.sql 文件,顯示所有薪水不在 5000 和字和薪水。將 SQL 語(yǔ)句存到文件 lab2_3.sql 中。12000之間的雇員的名SELECT last_name, salaryFROM employeesWHERE salary NOT BETN 5000 AND 12000;4.顯示受雇日期在年 月日 和年 5 月 1 日 之間的雇員的名字、崗位和受雇日期。按受雇日期順序排序查詢結(jié)果。SELECT last_name, job_id, hire_date FROM employeesWH
22、ERE hire_date BETN 20-Feb-1998 AND 01-May-1998ORDER BY hire_date;5.顯示所有在部門 20 和 50 中的雇員的名字和部門號(hào),并以名字按字母順序排序。SELECT last_name, department_id FROM employeesWHERE department_id IN (20, 50)ORDER BY last_name;6.修改 lab2_3.sql 列出收入在 $5,000 和 $12,000 之間,并且在部門 20 或50 工作的雇員的名字和薪水。將列標(biāo)題分別顯示為 Employee 和 Monthly S
23、alary,將 lab2_3.sql 保存為 lab2_6.sql。運(yùn)行 lab2_6.sql 中的語(yǔ)句。SELECT last_name Employee, salary Monthly Salary FROM employeesWHERE salary BETN 5000 AND 12000AND department_id IN (20, 50);7.顯示每一個(gè)在 1994 年受雇的雇員的名字和受雇日期。SELECT last_name, hire_dateFROM employeesWHERE hire_daIKE %94;8.顯示所有沒(méi)有主管經(jīng)理的雇員的名字和工作崗位。SELECT last_name, job_id FROM emplo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022年高考生物試卷(廣東)含答案解析
- 企業(yè)員工核心能力與職業(yè)素養(yǎng)雙提升計(jì)劃
- 個(gè)人租房合同協(xié)議書(5篇)
- 以孩子為中心的家庭育兒情感溝通策略
- 以提升小學(xué)生核心素養(yǎng)為目標(biāo)的小學(xué)英語(yǔ)繪本教學(xué)實(shí)踐與探索
- 創(chuàng)新型企業(yè)組織架構(gòu)的構(gòu)建與優(yōu)化
- 從理論到實(shí)踐博士研究的驗(yàn)證與實(shí)施
- 農(nóng)村學(xué)校學(xué)生參與綜合實(shí)踐活動(dòng)的心理分析與引導(dǎo)
- 創(chuàng)新教育模式在科技領(lǐng)域的應(yīng)用與推廣
- 以學(xué)生為中心的小學(xué)科學(xué)跨學(xué)科教學(xué)策略
- 新修訂中華人民共和國(guó)行政許可法全文解讀學(xué)習(xí)
- 法院特別委托書授權(quán)模板
- 品質(zhì)年度總結(jié)及來(lái)年計(jì)劃
- 學(xué)生體質(zhì)健康存在的主要問(wèn)題及改進(jìn)措施
- 2024年執(zhí)業(yè)藥師資格繼續(xù)教育定期考試題庫(kù)(附含答案)
- 安徽工程大學(xué)《自然語(yǔ)言處理及應(yīng)用》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024年室內(nèi)設(shè)計(jì)協(xié)議書
- 探尋中國(guó)茶:一片樹(shù)葉的傳奇之旅學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- GB/T 44264-2024光伏組件清潔機(jī)器人通用技術(shù)條件
- 電力系統(tǒng)自動(dòng)化課程設(shè)計(jì)
- 2023年半導(dǎo)體封裝工程師年終總結(jié)及下一年展望
評(píng)論
0/150
提交評(píng)論