MySQL數(shù)據(jù)庫原理與應(yīng)用項(xiàng)目化教程(微課版) 課件 (含思政) 項(xiàng)目7-簡單數(shù)據(jù)查詢_第1頁
MySQL數(shù)據(jù)庫原理與應(yīng)用項(xiàng)目化教程(微課版) 課件 (含思政) 項(xiàng)目7-簡單數(shù)據(jù)查詢_第2頁
MySQL數(shù)據(jù)庫原理與應(yīng)用項(xiàng)目化教程(微課版) 課件 (含思政) 項(xiàng)目7-簡單數(shù)據(jù)查詢_第3頁
MySQL數(shù)據(jù)庫原理與應(yīng)用項(xiàng)目化教程(微課版) 課件 (含思政) 項(xiàng)目7-簡單數(shù)據(jù)查詢_第4頁
MySQL數(shù)據(jù)庫原理與應(yīng)用項(xiàng)目化教程(微課版) 課件 (含思政) 項(xiàng)目7-簡單數(shù)據(jù)查詢_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目七簡單數(shù)據(jù)查詢

數(shù)據(jù)查詢是用戶對數(shù)據(jù)庫使用頻率最高的操作,通過查詢,用戶可以從數(shù)據(jù)庫中獲取需要的數(shù)據(jù),包括一些統(tǒng)計結(jié)果。

本項(xiàng)目將對“學(xué)生成績管理”數(shù)據(jù)庫的數(shù)據(jù)表做簡單查詢操作,這里的“簡單”指的是單表查詢,即查詢的數(shù)據(jù)項(xiàng)在一個表中,如果要篩選行,篩選的條件也是同一個表中。知識目錄:識記SELECT語句七個子句的語法及用途。(SELECT/FROM/WHERE/GROUPBY/HAVING/ORDERBY/LIMIT)能力目標(biāo):能對單表進(jìn)行無條件查詢、有條件查詢及統(tǒng)計查詢。能對查詢結(jié)果進(jìn)行排序,限制查詢返回行的數(shù)量。任務(wù)7.1任務(wù)7.2單表無條件查詢單表有條件查詢?nèi)蝿?wù)7.3單表統(tǒng)計查詢

任務(wù)7.1單表無條件查詢

使用SELECT語句對“學(xué)生成績管理”數(shù)據(jù)庫做單表無條件查詢操作。每次查詢只涉及到一個表的數(shù)據(jù)項(xiàng),而且不篩選行,可以對查詢結(jié)果按需要進(jìn)行排序,可以限制查詢返回行的數(shù)量。

單表無條件查詢要用到SELECT、FROM、ORDERBY、LIMIT這四個子句?!救蝿?wù)描述】單表無條件查詢7.1【相關(guān)知識】312ORDERBY子句

SELECT子句

FROM子句4

LIMIT子句7.1單表無條件查詢【相關(guān)知識】7.1SELECT語句可由多個子句構(gòu)成,實(shí)施單表無條件查詢?nèi)蝿?wù)會用到SELECT語句的四個子句。語法格式如下:SELECT[ALL|DISTINCT]表達(dá)式列表FROM表名[ORDERBY表達(dá)式列表[ASC|DESC]][LIMIT[起始記錄,]返回的行數(shù)];單表無條件查詢【相關(guān)知識】7.11.SELECT子句用于選擇要查找的數(shù)據(jù)項(xiàng)(表達(dá)式)。說明:多個表達(dá)式之間用逗號隔開。表達(dá)式可以是常量、字段、函數(shù)或者是它們加上運(yùn)算符構(gòu)成的式子。如果是查找表中的所有字段,表達(dá)式列表可以用“*”表示。表達(dá)式可以用別名,使用別名一般有如下二種格式:①表達(dá)式別名②表達(dá)式

AS別名別名可用引號定界或不定界,當(dāng)別名中含有空格等特殊字符時,一定要定界。ALL是默認(rèn)選項(xiàng),表示輸出查詢結(jié)果的所有行,包括重復(fù)行。DISTINCT表示要去掉查詢結(jié)果中的重復(fù)行。單表無條件查詢【相關(guān)知識】7.12.FROM子句用于選擇查詢的數(shù)據(jù)表。3.ORERBY子句用于對查詢結(jié)果排序。說明:ASC表示升序,DESC表示降序,ASC是默認(rèn)選項(xiàng)。升序排列時空值排在前面,降序排列時空值排在后面。4.LIMIT子句用于限制返回行的數(shù)量。說明:該子句后面可以跟兩個參數(shù),第一個參數(shù)表示起始記錄,此參數(shù)如果省略表示從第一行開始返回(行號從0開始計數(shù)),第二個參數(shù)表示返回的行數(shù)。單表無條件查詢7.1思政小貼士【空值表示不確定,排序時的位置】期末成績還未知,未來人生還有很多不確定,要有積極向上的競爭意識,努力向上。單表無條件查詢【任務(wù)實(shí)施】查詢所有學(xué)生的基本信息。7.1圖7.1查詢所有學(xué)生的基本信息單表無條件查詢

SELECT*

FROMstuinfo;【任務(wù)實(shí)施】2.查詢所有學(xué)生的學(xué)號和姓名。

7.1圖7.2查詢所有學(xué)生的學(xué)號和姓名單表無條件查詢SELECTstuno,stunameFROMstuinfo;【任務(wù)實(shí)施】3.查詢至少選修了一門課程的學(xué)生的學(xué)號(要求去掉重復(fù)行)。7.1圖7.3查詢stumarks表中所有學(xué)號單表無條件查詢SELECTstunoFROMstumarks;【任務(wù)實(shí)施】在SELECT后面用DISTINCT選項(xiàng)可以去掉重復(fù)行。SELECTDISTINCTstunoFROMstumarks;7.1圖7.4查詢stumarks表中所有學(xué)號(去掉重復(fù)行)單表無條件查詢【任務(wù)實(shí)施】4.查詢選課表中所有的學(xué)號及成績加5分后的結(jié)果,結(jié)果列名用中文別名(分別為學(xué)號、成績)顯示。7.1圖7.5查詢選修的學(xué)號和成績(成績+5)單表無條件查詢SELECTstuno學(xué)號,stuscore+5AS成績FROMstumarks;【任務(wù)實(shí)施】5.查詢所有學(xué)生的選課信息,要求先按課程號升序排列,課程號相同的按成績降序排列。7.1圖7.6查詢經(jīng)過排序的選課信息(cno

,stuscore

)單表無條件查詢SELECT*FROMstumarksORDERBYcno,stuscoreDESC;【任務(wù)實(shí)施】6.查詢年齡最小的二名學(xué)生的學(xué)號,姓名及出生日期。7.1圖7.7查詢年齡最小的二名學(xué)生的信息單表無條件查詢SELECTstuno,stuname,stubirthdayFROMstuinfoORDERBYstubirthdayDESCLIMIT2;任務(wù)7.2單表有條件查詢使用SELECT語句對“學(xué)生成績管理”數(shù)據(jù)庫做單表有條件查詢操作,就是在單表無條件查詢的基礎(chǔ)上增加了對數(shù)據(jù)表記錄的有條件篩選操作。單表有條件查詢要用到WHERE子句及常用的運(yùn)算符(包括關(guān)系運(yùn)算符、范圍運(yùn)算符、列表運(yùn)算符、模式匹配運(yùn)算符、空值判斷、邏輯運(yùn)算符)?!救蝿?wù)描述】單表有條件查詢7.2【相關(guān)知識】1WHERE子句7.22

常用運(yùn)算符單表有條件查詢【相關(guān)知識】7.2實(shí)施單表有條件查詢?nèi)蝿?wù)要用到查詢的五個子句。語法格式如下:SELECT[ALL|DISTINCT]表達(dá)式列表

FROM<基本表名>[WHERE<查詢條件>][ORDERBY[ASC|DESC]][LIMIT[起始記錄,]顯示的行數(shù)]單表有條件查詢SELECT子句用于篩選列,WHERE子句則用于篩選行,把滿足查詢條件的那些記錄給篩選出來,實(shí)現(xiàn)對表的有條件查詢。WHERE子句常用的運(yùn)算符如表7.1所示。7.2【相關(guān)知識】單表有條件查詢1.關(guān)系運(yùn)算符關(guān)系運(yùn)算符又叫比較運(yùn)算符,用于比較兩個表達(dá)式的值,使用關(guān)系運(yùn)算符來限定查詢條件。語法格式如下:WHERE表達(dá)式1關(guān)系運(yùn)算符表達(dá)式27.2【相關(guān)知識】單表有條件查詢2.范圍運(yùn)算符在WHERE子句中可以使用BETWEEN…AND關(guān)鍵字查找介于某個范圍內(nèi)的數(shù)據(jù),還可以在前面加上NOT關(guān)鍵字表示查找不在某個范圍內(nèi)的數(shù)據(jù)。語法格式如下:WHERE表達(dá)式[NOT]BETWEEN初始值A(chǔ)ND終止值上面條件子句等價于:WHERE[NOT](表達(dá)式>=初始值A(chǔ)ND表達(dá)式<=終止值)7.2【相關(guān)知識】單表有條件查詢3.列表運(yùn)算符在WHERE子句中可以使用IN關(guān)鍵字指定一個值表,值表中列出所有可能的值,當(dāng)要判斷的表達(dá)式與值表中的任一個值匹配時,結(jié)果返回TRUE,否則為FALSE??梢栽贗N前面加上NOT關(guān)鍵字,表示當(dāng)要判斷的表達(dá)式不與值表中的任一個值匹配時,結(jié)果返回TRUE,否則為FALSE。語法格式如下:WHERE表達(dá)式[NOT]IN(值1,值2,…值n)7.2【相關(guān)知識】單表有條件查詢4.模式匹配運(yùn)算符在WHERE子句中使用運(yùn)算符[NOT]LIKE可以實(shí)現(xiàn)對字符串的模糊查找,語法格式如下:

WHERE字段名[NOT]LIKE‘字符串’[ESCAPE‘轉(zhuǎn)義字符’]7.2【相關(guān)知識】單表有條件查詢5.空值判斷在WHERE子句中當(dāng)要判斷某個字段的值是否為空值時,需要使用ISNULL或ISNOTNULL關(guān)鍵字,語法格式如下:WHERE字段名IS[NOT]NULL初學(xué)者很容易把判斷字段是否為空值寫成:字段名=NULL,這是錯誤的表達(dá)方式,只有在UPDATE語句中把字段值更新為NULL時才這么寫。另外,注意不要把“ISNOTNULL”寫成“NOTISNULL”。7.2【相關(guān)知識】單表有條件查詢6.邏輯運(yùn)算符邏輯運(yùn)算符可以將多個查詢條件連接起來組成更為復(fù)雜的查詢條件。WHERE子句可以使用的邏輯運(yùn)算符有NOT、AND和OR。語法格式如下:WHERENOT邏輯表達(dá)式|邏輯表達(dá)式1{AND|OR}邏輯表達(dá)式27.2【相關(guān)知識】單表有條件查詢【任務(wù)實(shí)施】1.查詢成績介于80到90之間的所有選課記錄。SELECT*FROMstumarksWHEREstuscoreBETWEEN80AND90;上面WHERE子句中的條件表達(dá)式等價于stuscore>=80ANDstuscore<=907.2圖7.8查詢成績介于80~90之間的選課記錄單表有條件查詢【任務(wù)實(shí)施】2.查詢“S001”、“S003”和“S005”這三個學(xué)生的基本信息SELECT*FROMstuinfoWHEREstunoIN('S001','S003','S005');7.2圖7.9查詢S001、S003和S005這三個學(xué)生的基本信息單表有條件查詢【任務(wù)實(shí)施】3.查詢所有姓“張”的學(xué)生的基本信息。SELECT*FROMstuinfoWHEREstunameLIKE'張%';7.2圖7.10查詢所有姓“張”學(xué)生的基本信息單表有條件查詢【任務(wù)實(shí)施】4.查詢名字中包括"東"字的所有學(xué)生的學(xué)號及姓名SELECTstuno,stunameFROMstuinfoWHEREstunameLIKE'%東%';7.2圖7.11查詢姓名中帶“東”字的學(xué)號和姓名單表有條件查詢【任務(wù)實(shí)施】5.查詢成績?yōu)榭罩档倪x課記錄,結(jié)果按學(xué)號升序輸出。SELECT*FROMstumarksWHEREstuscoreISNULLORDERBYstuno;7.2圖7.12查詢成績?yōu)榭罩档倪x課記錄(sno

)單表有條件查詢【任務(wù)實(shí)施】6.查詢“S001”和“S003”這二個學(xué)生選修“0002”這門課的選課記錄SELECT*FROMstumarksWHERE(stunoIN('S001','S003'))AND(cno='0002');7.2圖7.13查詢S001和S003這二個學(xué)生選修0002這門課的記錄單表有條件查詢7.2思政小貼士【查詢時滿足條件的記錄才能篩選出來】評優(yōu)評獎需要滿足各種條件的才能篩選上,平時要努力學(xué)習(xí),課余積極參加各項(xiàng)活動。單表有條件查詢7.2思政小貼士【模糊查詢是為了找到更多可能的數(shù)據(jù)】學(xué)習(xí)目標(biāo)、職業(yè)規(guī)劃不可以模糊。單表有條件查詢?nèi)蝿?wù)7.3單表統(tǒng)計查詢使用SELECT語句對“學(xué)生成績管理”數(shù)據(jù)庫做單表統(tǒng)計查詢操作,包括分組統(tǒng)計查詢。單表統(tǒng)計查詢要用到常用聚合函數(shù)(計數(shù)、求和、求平均、求最大值、求最小值)、GROUPBY子句、HAVING子句。

【任務(wù)描述】7.3單表統(tǒng)計查詢【相關(guān)知識】31

HAVING子句

常用聚合函數(shù)7.32GROUPBY子句單表統(tǒng)計查詢統(tǒng)計查詢要用到常用聚合函數(shù)以及GROUPBY子句和HAVING子句。語法格式如下:SELECT[ALL|DISTINCT]表達(dá)式列表

FROM

基本表名

[WHERE

行篩選條件>[GROUPBY分組列名表[HAVING組篩選條件]]

[ORDERBY

排序列名表

[ASC|DESC]];[LIMIT[起始記錄,]顯示的行數(shù)]【相關(guān)知識】7.3單表統(tǒng)計查詢1.常用聚合函數(shù)【相關(guān)知識】7.3單表統(tǒng)計查詢聚合函數(shù)使用語法格式如下:函數(shù)名([ALL|DISTINCT]列名表達(dá)式|*)說明:其中,ALL是默認(rèn)選項(xiàng),表示取列名表達(dá)式所有的值進(jìn)行統(tǒng)計,DISTINCT表示統(tǒng)計時去掉列名表達(dá)式的重復(fù)值。*表示記錄,如:COUNT(*)表示統(tǒng)計有多少行。數(shù)據(jù)項(xiàng)為NULL時是不納入統(tǒng)計的?!鞠嚓P(guān)知識】7.3單表統(tǒng)計查詢2.GROUPBY子句GROUPBY子句的作用相當(dāng)于EXCEL的分類匯總。根據(jù)某一列或多列的值對數(shù)據(jù)表的行進(jìn)行分組統(tǒng)計,在這些列上對應(yīng)值都相同的行分在同一組。說明:使用GROUPBY子句是分小組統(tǒng)計數(shù)據(jù),在SELECT語句的輸出列中,只能包含二種目標(biāo)列表達(dá)式,要么是聚合函數(shù),要么是出現(xiàn)在GROUPBY子句中的分組字段。如果分組字段的值有NULL,NULL將不會被忽略掉,會進(jìn)行單獨(dú)的分組。【相關(guān)知識】7.3單表統(tǒng)計查詢3.HAVING子句HAVING子句用于篩選分組。查詢的時候只有用到GROUPBY子句進(jìn)行分組,才有可能會用到HAVING子句把滿足條件的組篩選出來?!鞠嚓P(guān)知識】7.3單表統(tǒng)計查詢【任務(wù)實(shí)施】1.查詢所有學(xué)生的人數(shù)。SELECTCOUNT(*)學(xué)生人數(shù)FROMstuinfo;7.3圖7.14查詢學(xué)生人數(shù)單表統(tǒng)計查詢【任務(wù)實(shí)施】2.查詢選修了課程的人數(shù)(注意:一個學(xué)生可能選了多門課)。SELECTCOUNT(DISTINCT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論