MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程課件 5.項(xiàng)目二-任務(wù)2-單表查詢_第1頁(yè)
MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程課件 5.項(xiàng)目二-任務(wù)2-單表查詢_第2頁(yè)
MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程課件 5.項(xiàng)目二-任務(wù)2-單表查詢_第3頁(yè)
MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程課件 5.項(xiàng)目二-任務(wù)2-單表查詢_第4頁(yè)
MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程課件 5.項(xiàng)目二-任務(wù)2-單表查詢_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目二數(shù)據(jù)管理與操作任務(wù)二單表查詢MySQL數(shù)據(jù)庫(kù)項(xiàng)目化教程任務(wù)二

單表查詢?nèi)蝿?wù)2-1SELECT語(yǔ)句任務(wù)2-2WHERE子句任務(wù)2-3GroupBy子句任務(wù)2-4OrderBy與Limit子句學(xué)習(xí)目標(biāo)

專業(yè)能力1.掌握SELECT語(yǔ)句基本語(yǔ)法2.掌握SELECT語(yǔ)句進(jìn)行單表查詢方法3.掌握查詢分組數(shù)據(jù)的方法4.掌握排序、Limit的方法

方法能力1.通過(guò)數(shù)據(jù)查詢學(xué)習(xí),具有對(duì)數(shù)據(jù)統(tǒng)計(jì)匯總的能力;2.通過(guò)對(duì)數(shù)據(jù)的運(yùn)用,提升數(shù)據(jù)分析的能力;3.通過(guò)完成學(xué)習(xí)任務(wù),提高解決實(shí)際問(wèn)題的能力。

社會(huì)能力1.樹立數(shù)據(jù)安全管理意識(shí);2.培養(yǎng)學(xué)生邏輯思維能力和分析問(wèn)題、解決問(wèn)題的能力;3.培養(yǎng)嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng),增強(qiáng)信息安全意識(shí)和危機(jī)意識(shí)。情境引入在數(shù)據(jù)庫(kù)操作中,使用頻率最多的是查詢操作。查詢數(shù)據(jù)時(shí),根據(jù)不同的需求,條件對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)查詢、統(tǒng)計(jì)、分組、排序等操作并返回結(jié)果。項(xiàng)目組安排小明從學(xué)生信息表(Student)查詢著手,分析學(xué)生的個(gè)人信息。任務(wù)2-1:SELECT語(yǔ)句分析學(xué)生的個(gè)人信息,首先從Select語(yǔ)句著手。任務(wù)分析SELECT語(yǔ)句用于從數(shù)據(jù)庫(kù)中選取數(shù)據(jù),返回的數(shù)據(jù)存儲(chǔ)在結(jié)果表中,稱為結(jié)果集。其中,SELECT關(guān)鍵字用于指定需要在查詢返回的結(jié)果集中包含的屬性(列),即我們需要看到的字段及其對(duì)應(yīng)的值。知識(shí)學(xué)習(xí)Select語(yǔ)句的語(yǔ)法格式及其功能MySQL從數(shù)據(jù)表中查詢數(shù)據(jù)的基本語(yǔ)句為Select語(yǔ)句,Select語(yǔ)句的一般格式如下。Select<*|字段名稱|表達(dá)式列表>From<數(shù)據(jù)表名稱|視圖名稱>[Where<條件表達(dá)式>][GroupBy<分組的字段名稱|表達(dá)式>][Having<篩選條件>][OrderBy<排序的字段名稱|表達(dá)式>Asc|Desc][Limit[<offset>,]<記錄條數(shù)>]Select關(guān)鍵字后面的字段名稱或表達(dá)式列表表示需要查詢的字段名稱或表達(dá)式,“*”是通配符,代表所有字段。From子句是Select語(yǔ)句所必需的子句,用于標(biāo)識(shí)從中檢索數(shù)據(jù)的一張或多張數(shù)據(jù)表或視圖。Where子句用于設(shè)定查詢條件以返回需要的記錄,如果有Where子句,就按照對(duì)應(yīng)的“條件表達(dá)式”規(guī)定的條件進(jìn)行查詢。如果沒(méi)有Where子句,就查詢所有記錄。GroupBy子句用于將查詢結(jié)果按指定的一個(gè)字段或多個(gè)字段的值進(jìn)行分組統(tǒng)計(jì),分組字段或表達(dá)式的值相等的被分為同一組。通常GroupBy子句與Count()、Sum()等聚合函數(shù)配合使用。Having子句與GroupBy子句配合使用,用于進(jìn)一步對(duì)由GroupBy子句分組的結(jié)果限定篩選條件,滿足該篩選條件的數(shù)據(jù)才能被輸出。OrderBy子句用于將查詢結(jié)果按指定的字段進(jìn)行排序。排序包括升序排列和降序排列。其中Asc表示記錄按升序排列,Desc表示記錄按降序排列,默認(rèn)狀態(tài)下,記錄按升序方式排列。Limit子句用于顯示查詢結(jié)果的條數(shù)。offset是位置偏移量,表示從提取數(shù)據(jù)的位置,默認(rèn)值為0。任務(wù)實(shí)施查詢所有字段查詢指定字段顯示表達(dá)式結(jié)果為字段命別名查詢結(jié)果去重(Distinct)一、查詢所有字段查詢“Student”表中的全部信息。案例1:步驟:Select*fromStudent;

二、查詢指定字段查詢“Student”表中學(xué)生姓名、民族及政治面貌。案例2:步驟:SelectSname,Nationality,PoliticsfromStudent;

三、顯示表達(dá)式結(jié)果顯示1+1的結(jié)果。案例3:步驟:Select1+1;四、為字段命別名查詢“Student”表中學(xué)生姓名、民族及政治面貌,并用中文顯示字段名。案例4:步驟:SelectSname姓名,NationalityAS民族,PoliticsAS政治面貌fromStudent;字段或表命別名的語(yǔ)法格式為:<字段名|表名>[AS]<字段別名|表別名>五、查詢結(jié)果去重(Distinct)查詢“Student”表中有哪幾個(gè)民族的學(xué)生。案例5:步驟:SelectDistinctNationality民族fromStudent;DISTINCT用于返回唯一不同的值:SELECTDISTINCT字段名FROM表名任務(wù)2-2:WHERE子句分析學(xué)生的個(gè)人信息時(shí),很多情況下并不需要所有的數(shù)據(jù),可將WHERE子句添加到SELECT語(yǔ)句中對(duì)數(shù)據(jù)進(jìn)行過(guò)濾。任務(wù)分析WHERE子句由屬性或關(guān)鍵字、運(yùn)算符和常量組成,用于提取那些滿足指定條件的記錄。知識(shí)學(xué)習(xí)WHERE子句的語(yǔ)法格式及其功能Where子句后面是一個(gè)邏輯表達(dá)式表示的條件,用來(lái)限制Select語(yǔ)句檢索的記錄,即查詢結(jié)果中的記錄都應(yīng)該是滿足該條件的記錄。Where子句會(huì)根據(jù)條件對(duì)From子句的中間結(jié)果中的行一行一行地進(jìn)行判斷,當(dāng)條件為True的時(shí)候,一行就被包含到Where子句的中間結(jié)果中。Select<*|字段名稱|表達(dá)式列表>From<數(shù)據(jù)表名稱|視圖名稱>Where<條件表達(dá)式>任務(wù)實(shí)施比較運(yùn)算邏輯運(yùn)算模式匹配(Like運(yùn)算符)范圍比較(Between和In)一、比較運(yùn)算比較運(yùn)算符是指可以使用下列運(yùn)算符比較兩個(gè)值。當(dāng)用運(yùn)算符比較兩個(gè)值時(shí),結(jié)果是一個(gè)邏輯值,不是TRUE(成立)就是FALSE(不成立)的運(yùn)算符號(hào)。運(yùn)算符說(shuō)明運(yùn)算符說(shuō)明=等于>大于<>不等于!>不大于!=不等于<=小于或等于<小于>=大于或等于!<不小于

當(dāng)兩個(gè)表達(dá)式值均不為空值(Null)時(shí),除了“<=>”運(yùn)算符,其他比較運(yùn)算返回邏輯值True(真)或False(假);而當(dāng)兩個(gè)表達(dá)式值中有一個(gè)為空值或都為空值時(shí),將返回UnKnown。一、比較運(yùn)算——1.使用“=”符號(hào)查詢查詢“Student”數(shù)據(jù)表中是共青團(tuán)員的學(xué)生信息。案例1:步驟:

Select*FromStudentwherePolitics='共青團(tuán)員';

一、比較運(yùn)算——2.使用“>=”符號(hào)查詢查詢“Student”數(shù)據(jù)表中2002年以后出生的學(xué)生姓名。案例2:步驟:

SelectSNameFromStudentwhereBirth>='2002-1-1';

二、邏輯運(yùn)算邏輯運(yùn)算又稱布爾運(yùn)算,通常用來(lái)測(cè)試真假值。符號(hào)1符號(hào)2說(shuō)明示例說(shuō)明not!非運(yùn)算!x如果x是"true",那么示例的結(jié)果是"false";如果x是"false",那么示例的結(jié)果是"true"。or||或運(yùn)算x||y如果x或y任一是"true",那么示例的結(jié)果是"true",否則示例的結(jié)果是"false"。and&&與運(yùn)算x&&y如果x和y都是"True",那么示例結(jié)果是"true",否則示例的結(jié)果是"false"。xor^異或運(yùn)算x^y如果x和y不相同,那么示例結(jié)果是"true",否則示例的結(jié)果是"false"。通過(guò)邏輯運(yùn)算符(AND、OR、XOR和NOT)組成更為復(fù)雜的查詢條件。邏輯運(yùn)算操作的結(jié)果是“1”或“0”,分別表示“true”或“false”。二、邏輯運(yùn)算——1.簡(jiǎn)單的邏輯運(yùn)算簡(jiǎn)單的邏輯運(yùn)算過(guò)程及結(jié)果,代碼運(yùn)行結(jié)果如圖所示。可以看見在sql中,真值除了真假之外還有第三種--不確定(NULL)。NULL用于表示缺失的值或遺漏的未知數(shù)據(jù),不是某種具體類型的值。數(shù)據(jù)表中的NULL值表示該值所處的字段為空,值為NULL的字段沒(méi)有值,尤其要明白的是:NULL值與0或者空字符串是不同的。二、邏輯運(yùn)算——2.使用AND關(guān)鍵字查詢查詢“Student”數(shù)據(jù)表中男共青團(tuán)員的學(xué)生信息。案例3:步驟:Select*FromStudentwherePolitics='共青團(tuán)員'andSex='m';

二、邏輯運(yùn)算——3.使用OR關(guān)鍵字查詢查詢“Student”數(shù)據(jù)表中是共青團(tuán)員或性別為男的學(xué)生信息。案例4:步驟:Select*FromStudentwherePolitics='共青團(tuán)員'orSex='m';

三、模式匹配(Like運(yùn)算符)LIKE運(yùn)算符確定字符串是否與指定的模式匹配。指定的模式可以完全包含要匹配的字符,也可以包含元字符。實(shí)際上,LIKE運(yùn)算符使用下表中的通配符匹配子字符串。Like運(yùn)算符用于指出一個(gè)字符串是否與指定的字符串相匹配,其運(yùn)算對(duì)象可以是char、varchar、text、datetime等類型的數(shù)據(jù),返回邏輯值TRUE或FALSE。使用Like進(jìn)行模式匹配時(shí),常使用特殊符號(hào)_和%,可進(jìn)行模糊查詢。“%”代表0個(gè)或多個(gè)字符,“_”代表單個(gè)字符。由于MySQL默認(rèn)不區(qū)分大小寫,要區(qū)分大小寫時(shí)需要更換字符集的校對(duì)規(guī)則。通配符含義示例%表示0~n個(gè)任意字符'XY%':匹配以XY開始的任意字符串。'%X':匹配以X結(jié)束的任意字符串。'X%Y':匹配包含XY的任意字符串_表示單個(gè)任意字符'_X':匹配以X結(jié)束的兩個(gè)字符的字符串。'X_Y':匹配以字母X開頭,字母Y結(jié)尾的3個(gè)字符組成字符串三、模式匹配(Like運(yùn)算符)——1.通配符“%”查詢“Student”數(shù)據(jù)表中姓“楊”的學(xué)生信息。案例5:步驟:Select*FromStudentwhereSNamelike'楊%';

三、模式匹配(Like運(yùn)算符)——1.通配符“%”查詢“Student”數(shù)據(jù)表中家庭住址在銅仁的學(xué)生信息。案例6:步驟:Select*FromStudentwhereAddresslike'%銅仁%';

三、模式匹配(Like運(yùn)算符)——2.通配符“_”查詢“Student”數(shù)據(jù)表中姓“楊”,名字只有兩個(gè)字的學(xué)生信息。案例7:步驟:Select*FromStudentwhereSNamelike'楊_';

四、范圍比較(Between和In)——1.Between

Between關(guān)鍵字指出查詢范圍,當(dāng)要查詢的條件是某個(gè)值的范圍時(shí),可以使用Between關(guān)鍵字。當(dāng)不使用NOT時(shí),若表達(dá)式的值在表達(dá)式1與表達(dá)式2之間(包括這兩個(gè)值),則返回TRUE,否則返回FALSE;使用NOT時(shí),返回值剛好相反。表達(dá)式[Not]Between

表達(dá)式1AND表達(dá)式2語(yǔ)法格式

:表達(dá)式1的值不能大于表達(dá)式2的值。四、范圍比較(Between和In)——1.Between查詢“Student”數(shù)據(jù)表中2002年出生學(xué)生的姓名、性別、出生日期、家庭住址。案例8:步驟:SelectSname,Sex,Birth,AddressFromStudentwhereBirthBetween'2002-1-1'and'2002-12-31';

四、范圍比較(Between和In)——2.InIn關(guān)鍵字可以方便地限制檢查數(shù)據(jù)的范圍。使用IN關(guān)鍵字可以指定一個(gè)值表,值表中列出所有可能的值,當(dāng)與值表中的任一個(gè)匹配時(shí),即返回TRUE,否則返回FALSE。使用NOT時(shí),返回值剛好相反。表達(dá)式[Not]In

(表達(dá)式1[,…n])語(yǔ)法格式

:四、范圍比較(Between和In)——2.In查詢“Student”數(shù)據(jù)表中侗、苗、彝、藏四個(gè)民族的學(xué)生的姓名、民族、政治面貌、家庭地址,字段用中文表示。案例9:步驟:SelectSnameas姓名,Nationalityas民族,Politicsas政治面貌,Addressas家庭住址FromStudentwhereNationalityin('侗','苗','彝','藏');五、空值比較當(dāng)需要判定一個(gè)表達(dá)式的值是否為空值時(shí),使用IsNull關(guān)鍵字。當(dāng)不使用NOT時(shí),若表達(dá)式expression的值為空值,返回TRUE,否則返回FALSE;使用NOT時(shí),返回值剛好相反。表達(dá)式

IS[NOT]NULL語(yǔ)法格式

:五、空值比較查詢“Class”數(shù)據(jù)表中入學(xué)年份為空值的數(shù)據(jù)。案例10:步驟:select*fromclasswhereenteryearisnull;任務(wù)2-3:GroupBy子句分析學(xué)生的個(gè)人信息時(shí),很多時(shí)候需要對(duì)信息進(jìn)行分組統(tǒng)計(jì),可將GROUPBY子句添加到SELECT語(yǔ)句中對(duì)數(shù)據(jù)進(jìn)行分組查詢。任務(wù)分析GROUPBY子句用來(lái)根據(jù)指定的字段對(duì)結(jié)果集(選取的數(shù)據(jù))進(jìn)行分組,如果某些記錄的指定字段具有相同的值,那么它們將被合并為一條數(shù)據(jù)。GROUPBY通常與聚合函數(shù)一起用于統(tǒng)計(jì)數(shù)據(jù)。知識(shí)學(xué)習(xí)一、聚合函數(shù)聚合函數(shù)又叫組函數(shù),通常是對(duì)表中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和計(jì)算,一般結(jié)合分組(groupby)來(lái)使用,用于統(tǒng)計(jì)和計(jì)算分組數(shù)據(jù)。聚合函數(shù)對(duì)一組值執(zhí)行計(jì)算并返回單一的值。除COUNT以外,聚合函數(shù)忽略空值,如果COUNT函數(shù)的應(yīng)用對(duì)象是一個(gè)確定列名,并且該列存在空值,此時(shí)COUNT仍會(huì)忽略空值。聚合函數(shù)經(jīng)常與SELECT語(yǔ)句的GROUPBY子句的HAVING一同使用。函數(shù)名功能Count(*)統(tǒng)計(jì)數(shù)據(jù)表中的總記錄數(shù),包含字段值為空值的記錄Avg(字段名稱)計(jì)算指定字段值的平均值Max(字段名稱)計(jì)算指定字段的最大值Count(字段名稱)統(tǒng)計(jì)指定字段的記錄數(shù),忽略字段值為空值的記錄Sum(字段名稱)計(jì)算指定字段值的總和Min(字段名稱)計(jì)算指定字段的最小值聚合函數(shù)用于對(duì)一組數(shù)據(jù)值進(jìn)行計(jì)算并返回單一值,所以也被稱為組合函數(shù)。Select子句中可以使用聚合函數(shù)進(jìn)行計(jì)算,計(jì)算結(jié)果作為新列出現(xiàn)在查詢結(jié)果集中。聚合運(yùn)算的表達(dá)式可以包括字段名稱、常量以及由運(yùn)算符連接起來(lái)的函數(shù)。知識(shí)學(xué)習(xí)二、分組查詢(GroupBy)如果需要按某一列數(shù)據(jù)值進(jìn)行分組,在分組的基礎(chǔ)上再進(jìn)行查詢,就要使用GroupBy子句。GroupBy可以根據(jù)一個(gè)或多個(gè)列進(jìn)行分組,也可以根據(jù)表達(dá)式進(jìn)行分組,經(jīng)常和聚合函數(shù)一起使用。如果要對(duì)分組或聚合指定查詢條件,則可以使用Having子句,該子句用于限定于對(duì)統(tǒng)計(jì)組的查詢。一般與GroupBy子句一起使用,對(duì)分組數(shù)據(jù)進(jìn)行過(guò)濾。WithRollup是在group分組字段的基礎(chǔ)上再進(jìn)行統(tǒng)計(jì)數(shù)據(jù)。GroupBy字段名稱[Having<條件表達(dá)式>][WithRollup]任務(wù)實(shí)施聚合函數(shù)分組查詢(GroupBy)一、聚合函數(shù)將“Student”表中“Nationality”字段值為“漢”設(shè)置為Null值,查詢Student表和“Nationality”字段分別有多少條記錄。案例1:步驟一:首先,將“Nationality”字段為漢的替換為Null。

UpdateStudentSetNationality=NullwhereNationality='漢';

一、聚合函數(shù)將“Student”表中“Nationality”字段值為“漢”設(shè)置為Null值,查詢Student表和“Nationality”字段分別有多少條記錄。案例1:步驟二:查詢“Student”表中“Nationality”字段有多少條記錄。

selectcount(Nationality)fromstudent;二、分組查詢(GroupBy)對(duì)學(xué)生的政治面貌情況進(jìn)行分析。1)查詢“Student”數(shù)據(jù)表中政治面貌的類別;2)查詢“Student”數(shù)據(jù)表中每組政治面貌的人數(shù);3)在“Student”數(shù)據(jù)表中,結(jié)合ClassNo字段,查詢各班學(xué)生政治面貌分布情況。案例2:步驟一:查詢“Student”數(shù)據(jù)表中政治面貌的類別。

SelectPoliticsFromStudentGroupbyPolitics;步驟二:查詢“Student”數(shù)據(jù)表中每組政治面貌的人數(shù)。SelectPolitics,count(Sno)as人數(shù)FromStudentGroupbyPolitics;步驟三:在“Student”數(shù)據(jù)表中,結(jié)合ClassNo字段,查詢各班學(xué)生政治面貌分布情況。SelectClassNo,Politics,count(Sno)as人數(shù)FromStudentGroupbyClassNo,Politics;二、分組查詢(GroupBy)在“Student”數(shù)據(jù)表中,結(jié)合ClassNo字段,查詢各班學(xué)生政治面貌超過(guò)一人的數(shù)據(jù)。案例3:分析:使用Having對(duì)分組數(shù)據(jù)過(guò)濾。步驟:SelectClassNo,Politics,count(Sno)as人數(shù)FromStudentGroupbyClassNo,PoliticsHaving人數(shù)>1;二、分組查詢(GroupBy)在“Student”數(shù)據(jù)表中,查詢各班學(xué)生政治面貌分布情況,并使用WithRollup統(tǒng)計(jì)匯總。案例4:分析:使用WithRollup對(duì)分組數(shù)據(jù)再統(tǒng)計(jì)。步驟:SelectClassNo,Politics,count(Sno)as人數(shù)FromStudentGroupbyClassNo,PoliticsWithRollup;任務(wù)2-4:OrderBy與Limit子句分析學(xué)生的個(gè)人信息時(shí),很多時(shí)候需要對(duì)信息進(jìn)行排序或者只需要部分?jǐn)?shù)據(jù),可將ORDERBY和LIMIT子句添加到SELECT語(yǔ)句中對(duì)數(shù)據(jù)處理。任務(wù)分析ORDERBY語(yǔ)句用于根據(jù)指定的列對(duì)結(jié)果集進(jìn)行排序,比如排名等情況。limit子句用于限制查詢結(jié)果返回的數(shù)量,常用于返回前幾條數(shù)據(jù)、分頁(yè)查詢等情況。知識(shí)學(xué)習(xí)一、排序從數(shù)據(jù)表中查詢數(shù)據(jù)時(shí),結(jié)果是按照數(shù)據(jù)被添加到數(shù)據(jù)表時(shí)的物理順序顯示的。在實(shí)際編程中,有時(shí)需要按照指定的字段進(jìn)行排序顯示,這就需要對(duì)查詢結(jié)果進(jìn)行

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論