版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
目錄任務(wù)六掌握基本查詢語句結(jié)構(gòu)任務(wù)七條件查詢?nèi)蝿?wù)八帶聚合函數(shù)的查詢?nèi)蝿?wù)十多表連接查詢?nèi)蝿?wù)九子查詢掌握簡單查詢語句結(jié)構(gòu)任務(wù)實施任務(wù)準(zhǔn)備簡單查詢基本查詢語句結(jié)構(gòu)0102
查詢與關(guān)系運算01
查詢語句的語法格式02
查詢動作的分析與查詢語句03任務(wù)六任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、查詢與關(guān)系運算任務(wù)六1.關(guān)系運算(1)選擇選擇運算(Selection)是在關(guān)系中選擇滿足某種條件的元組。其中的條件是以邏輯表達式給出的,使得邏輯表達式的值為真的元組將被選取。這是從行的角度進行的運算,即水平方向抽取元組。經(jīng)過選擇運算得到的結(jié)果元組可以形成新的關(guān)系,其關(guān)系模式不變,但其中元組的數(shù)目小于等于原來的關(guān)系中元組的個數(shù),它是原關(guān)系的一個子集。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、查詢與關(guān)系運算任務(wù)六1.關(guān)系運算(2)投影投影運算(Projection)是從關(guān)系中挑選出若干屬性組成新的關(guān)系。這是從列的角度進行的運算,相當(dāng)于對關(guān)系進行垂直分解。經(jīng)過投影運算可以得到一個新關(guān)系,其關(guān)系模式所包含的屬性個數(shù)往往比原關(guān)系少,或者屬性的排列順序不同。因此,投影運算提供了垂直調(diào)整關(guān)系的手段。如果新關(guān)系中包含重復(fù)元組,則要刪除重復(fù)元組。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、查詢與關(guān)系運算任務(wù)六1.關(guān)系運算(3)連接連接(Join)是從兩個關(guān)系(R,S)的笛卡爾積中選取屬性間滿足一定條件的元組。連接運算中有兩種最為重要也最為常用的連接,一種是等值連接(Equi-join),另一種是自然連接(Naturaljoin)。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、查詢語句的語法格式任務(wù)六1、MySQL從數(shù)據(jù)表中查詢數(shù)據(jù)的基本語句是SELECT語句,
SELECT語句是SQL語句中使用頻度最高的語句。2、SELECT語句的基本語法格式如下:SELECT[DISTINCT]*|字段名表達式1,字段名表達式2,…,字段名表達式nFROM數(shù)據(jù)源[WHERE條件表達式1][GROUPBY分組依據(jù)1[,分組依據(jù)2[…,分組依據(jù)n]][HAVING條件表達式2]][ORDERBY排序依據(jù)1[ASC|DESC][,排序依據(jù)2[ASC|DESC]…][LIMIT[OFFSET,]記錄數(shù)]任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、查詢語句的語法格式任務(wù)六3、SELECT語句每一子句的含義(1)SELECT[DISTINCT]*|字段名表達式1,字段名表達式2,…,字段名表達式n:SELECT語句的第一部分,是必選部分,此部分表明從數(shù)據(jù)源中查詢哪些字段,最終獲得哪些信息,也就是查詢結(jié)果,以關(guān)系模式的方式呈現(xiàn)。也就是說,查詢結(jié)果是一個關(guān)系。通配符”*”表示所有字段,如果不是查詢所有字段,則以字段名表達式的方式列出需要查詢的信息,字段名表達式可以就是字段名,也可以是包含字段名的表達式,多個字段名表達式之間用逗號隔開。DISTINCT是可選項,用于刪除查詢結(jié)果中重復(fù)的數(shù)據(jù)。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、查詢語句的語法格式任務(wù)六3、SELECT語句的每一子句的含義(2)FROM數(shù)據(jù)源:此項為必選項,用于指明查詢數(shù)據(jù)的來源,數(shù)據(jù)源一般為數(shù)據(jù)表或視圖。如果數(shù)據(jù)源有多個,則數(shù)據(jù)表名或視圖名之間用逗號隔開。多個數(shù)據(jù)表或視圖之間在此可進行連接運算。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、查詢語句的語法格式任務(wù)六3、SELECT語句的每一子句的含義(3)[WHERE條件表達式1]:可選項,如果選擇該項,則只從數(shù)據(jù)源中挑選滿足條件的元組。這一部分屬于行向操作,其實就是關(guān)系運算中的選擇。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、查詢語句的語法格式任務(wù)六3、SELECT語句的每一子句的含義(4)[GROUPBY分類依據(jù)1[,分類依據(jù)2[…,分類依據(jù)n]]
[HAVING條件表達式2]]:該子句也是可選項,如果使用此選項,則可以對查詢結(jié)果進行分類匯總,分類依據(jù)可以是多個,多個分類依據(jù)用逗號隔開,分類依據(jù)可以是一個字段,也可以是字段的某一部分。此時,第一部分,即查詢結(jié)果只能包含分類依據(jù)或聚合函數(shù)得到的統(tǒng)計項。此部分的“[HAVING條件表達式2]”是可選項,只能跟在“GROUPBY”的后面,不能單獨出現(xiàn)。如果在“GROUPBY”的后面加上此項,則可在分類匯總后的結(jié)果中挑選滿足條件的行。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、查詢語句的語法格式任務(wù)六3、SELECT語句的每一子句的含義(5)[ORDERBY排序依據(jù)1[ASC|DESC][,排序依據(jù)2[ASC|DESC]…]:該子句是可選項,如果使用此選項,則可以對查詢結(jié)果進行排序,排序的依據(jù)可以是多項,用逗號隔開?!癧ASC|DESC]“是可選項,ASC表示升序,DESC表示降序,默認(rèn)為升序。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、查詢語句的語法格式任務(wù)六3、SELECT語句的每一子句的含義(6)[LIMIT[OFFSET,]記錄數(shù)]:此子句是可選項,使用此選項,可規(guī)定只顯示上述查詢動作完成后最后顯示出來的數(shù)據(jù)條數(shù)。如只顯示前3行,則此選項應(yīng)為LIMIT3。注意語法格式的最后一行是一個語句結(jié)束符”;”,還有需要注意的是所有逗號以及最后的分號都是英文標(biāo)點符號。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、查詢動作的分析與查詢語句任務(wù)六1、查詢動作的分析(1)首先要明確我們的操作對象以及查詢結(jié)果,并找到兩者之間的聯(lián)系。也就是用一張表還是多張表才能完成查詢?nèi)蝿?wù),查詢的結(jié)果需要匯總還是不需要匯總等。(2)第二,我們要明確,查詢結(jié)果是一個數(shù)據(jù)表(關(guān)系),也就是一個集合,記錄的集合。有一些特殊的集合要重視,即空集、只有一個元素的集合等。在后期對查詢結(jié)果進行處理時,需要用元素與集合的關(guān)系來描述某些條件。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、查詢動作的分析與查詢語句任務(wù)六2、查詢語句的書寫在將查詢語句各子句與關(guān)系運算對應(yīng)起來的前提條件下,進一步明確查詢語句各子句的執(zhí)行次序,對于查詢語句的書寫有很大的幫助。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1基本查詢語句結(jié)構(gòu)任務(wù)六1.前導(dǎo)知識(1)基本查詢語句只需包括兩個子句,即SELECT和FROM。
其語法格式為:SELECT[DISTINCT]*|字段名表達式1,字段名表達式2,…,字段名表達式nFROM數(shù)據(jù)表名;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1基本查詢語句結(jié)構(gòu)任務(wù)六2.任務(wù)內(nèi)容(1)查詢books表中的所有書籍的信息(2)查詢books表中書是哪幾家出版社的(3)查詢每本書的書名、書價格、書作者和相關(guān)出版社任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1基本查詢語句結(jié)構(gòu)任務(wù)六3.完成任務(wù)(1)查詢books表中的所有書籍的信息select*frombooks;(2)查詢books表中的書是哪幾家出版社的selectbook_pubfrombooks;selectdistinctbook_pubfrombooks;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1基本查詢語句結(jié)構(gòu)任務(wù)六3.完成任務(wù)(3)查詢每本書的書名、書價格、書作者和相關(guān)出版社selectbook_name,book_price,book_author,book_pubfrombooks;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2簡單查詢?nèi)蝿?wù)六1.前導(dǎo)知識SELECT子句的字段名表達式除了直接書寫字段名外,還可以是一個表達式。如果字段名表達式太長或想要用另外的字段名替代當(dāng)前列標(biāo)簽,此時可以給字段表達式起別名。其語法格式如下:select字段表達式1[[as]別名1],…,字段名表達式n[[as]別名n]from數(shù)據(jù)表名[[as]別名];任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2簡單查詢?nèi)蝿?wù)六2.任務(wù)內(nèi)容(1)查詢books表中所有出版社的簡稱,即將“出版社”三個字從查詢結(jié)果中去掉。如“清華大學(xué)出版社”,只顯示“清華大學(xué)”。(2)查詢每位借閱者的姓氏信息(假設(shè)每個借閱者的姓氏只有一個字)。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2簡單查詢?nèi)蝿?wù)六3.完成任務(wù)(1)查詢books表中所有出版社的簡稱,即將“出版社”三個字從查詢結(jié)果中去掉。如“清華大學(xué)出版社”,只顯示“清華大學(xué)”。selectsubstr(book_pub,1,locate(“出版社”,book_id)-1)frombooks;說明:“substr(book_pub,1,locate(“出版社”,book_id)-1)”是運用兩個函數(shù)substr、locate的嵌套來截取book_pub中的部分字符。函數(shù)substr原型:substr(string,start,n),此函數(shù)的基本功能是:從”string”中截取從“start”開始的長度為”n”的子串;函數(shù)locate原型:locate(substring,string),此函數(shù)的基本功能是:在字符串”string”中定位子串”substring”出現(xiàn)的起始位置。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2簡單查詢?nèi)蝿?wù)六3.完成任務(wù)(2)查詢每位借閱者的姓氏信息(假設(shè)每個借閱者的姓氏只有一個字)。selectsubstr(borr_name,1,1)as姓fromborrowers;④更改文字內(nèi)容小結(jié)任務(wù)六任務(wù)六掌握基本查詢語句結(jié)構(gòu)1、查詢與關(guān)系運算2、查詢語句的語法格式3、查詢動作的分析與查詢語句條件查詢?nèi)蝿?wù)實施任務(wù)準(zhǔn)備單條件查詢過濾多條件查詢過濾模糊查詢過濾010203
條件表達式01任務(wù)七任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、條件表達式任務(wù)七條件表達式是指用運算符連接起來的常量、變量、函數(shù)等各種運算對象所形成的符號串。在SELECT語句中,使用最多的條件表達式有兩類,即關(guān)系運算表達式、邏輯運算表達式。(1)常量常量是指如果符號攜帶的信息在程序運行過程中不會發(fā)生變化,則稱此符號為常量。常量根據(jù)數(shù)據(jù)類型的不同而不同,如字符串型常量:”出版社”,需要用雙引號或單引號作為界符,將數(shù)據(jù)放在界符的中間;日期型常量:20201010,表示2020年10月10日。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、條件表達式任務(wù)七(2)變量變量是指如果符號攜帶的信息在程序運行過程中會發(fā)生變化,則稱這樣的符號為變量。在數(shù)據(jù)庫中,最常見的變量就是字段。(3)運算符在MySQL中,運算符有很多,用在查詢中的運算符主要有算術(shù)運算符、關(guān)系運算符等,現(xiàn)列表如下:任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、條件表達式任務(wù)七(3)運算符優(yōu)先級運算符1*(乘)、/(DIV,除)、%(MOD,取余)、、2+(加)、-(減)3=(相等比較)、<=>(完全相等比較)、<、<=、>、>=、!=(不等于)、<>(不等于)IN、ISNULL、ISNOTNULL、LIKE4BETWEEN…AND…5NOT(邏輯非)6AND(邏輯與)7OR(邏輯或)任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、條件表達式任務(wù)七(4)函數(shù)MySQL中提供了豐富的函數(shù),通過這些函數(shù)可以簡化用戶對數(shù)據(jù)的處理。MySQL中的函數(shù)包括數(shù)學(xué)函數(shù)、字符串函數(shù)、日期和時間函數(shù)等。表4-7數(shù)學(xué)函數(shù)函數(shù)名稱函數(shù)功能ABS(x)返回x的絕對值SQRT(x)返回x的非負(fù)2次方根MOD(x,y)返回x被y除后的余數(shù)CEILING(x)返回不小于x的最小整數(shù)FLOOR(x)返回不大于x的最大整數(shù)ROUND(x,y)對x進行四舍五入操作,小數(shù)點后保留y位SIGN(x)返回x的符號,返回值為-1,0或者1任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、條件表達式任務(wù)七(4)函數(shù)表4-8字符串函數(shù)函數(shù)名稱函數(shù)功能LENGTH(str)返回字符串str的字節(jié)長度CONCATs1,s2,…)返回一個或者多個字符串連接產(chǎn)生的新字符串TRIM(str)刪除字符串str兩側(cè)的空格REPLACE(str,s1,s2)使用字符串s2替換str中所有的字符串s1SUBSTR(str,n,len)返回字符串str的子串,起始位置為n,長度為lenLOCATE(s1,str)返回子串s1在字符串str中的起始位置REVERSE(str)返回字符串反轉(zhuǎn)(字符順序顛倒)后的結(jié)果任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、條件表達式任務(wù)七(4)函數(shù)表4-9日期時間函數(shù)函數(shù)名稱函數(shù)功能CURDATE()獲取系統(tǒng)當(dāng)前日期CURTIME()獲取系統(tǒng)當(dāng)前時間SYSDATE()獲取當(dāng)前系統(tǒng)日期和時間TIME_TO_SEC()返回將時間轉(zhuǎn)換成秒的結(jié)果ADDDATE()執(zhí)行日期的加運算SBUDATE()執(zhí)行日期的減運算DATE_FORMAT()格式化輸出日期和時間值任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1單條件查詢過濾任務(wù)七1.前導(dǎo)知識(1)單條件查詢是指WHERE子句中所寫表達式只限定一個條件,如姓王的借閱者、電子工業(yè)出版社的書、三大出版社(清華大學(xué)出版社、電子工業(yè)出版社、機械工業(yè)出版社)的書等。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1單條件查詢過濾任務(wù)七2.任務(wù)內(nèi)容(1)查詢姓王的借閱者信息。(2)查詢由三大出版社(清華大學(xué)出版社、電子工業(yè)出版社、機械工業(yè)出版社)的書。(3)查詢書價在30至40之間的書籍。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1單條件查詢過濾任務(wù)七3.完成任務(wù)(1)查詢姓王的借閱者信息。在MySQL命令提示符后輸入以下命令語句并執(zhí)行。select*fromborrowerswheresubstr(borr_name,1,1)=”王”;(2)查詢由三大出版社(清華大學(xué)出版社、電子工業(yè)出版社、機械工業(yè)出版社)的書的編號、書名、書價、書作者、出版社等信息。selectbook_id,book_name,book_price,book_author,book_pubfrombookswherebook_pubin(”清華大學(xué)出版社”,”電子工業(yè)出版社”,”機械工業(yè)出版社”);任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1單條件查詢過濾任務(wù)七3.完成任務(wù)(3)查詢書價在20元至30元之間的書的書編號、書名、書價、書作者、出版社等信息。selectbook_id,book_name,book_price,book_author,book_pubfrombookswherebook_pricebetween20and30;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2多條件查詢過濾任務(wù)七1.前導(dǎo)知識(1)多條件查詢是指WHERE子句中所寫表達式包含多個限定條件,如清華大學(xué)出版社出版的、價格在30元至40元之間的書,電子工業(yè)出版社的、信息技術(shù)方面的書等。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2多條件查詢過濾任務(wù)七2.任務(wù)內(nèi)容(1)查詢姓王的、年齡在20歲以下的借閱者信息。(2)查詢由三大出版社(清華大學(xué)出版社、電子工業(yè)出版社、機械工業(yè)出版社)出版的書。(3)查詢由清華大學(xué)出版社出版的、書名中有“數(shù)據(jù)庫”字樣的書。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2多條件查詢過濾任務(wù)七3.完成任務(wù)(1)查詢姓王的、年齡在20歲以下的借閱者信息。select*fromborrowerswheresubstr(borr_name,1,1)=”王”andborr_age<20;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2多條件查詢過濾任務(wù)七3.完成任務(wù)(2)查詢由三大出版社(清華大學(xué)出版社、電子工業(yè)出版社、機械工業(yè)出版社)出版的書籍信息,包括書號、書名、書價、書作者、出版社。selectbook_id,book_name,book_price,book_author,book_pubfrombookswherebook_pub=”清華大學(xué)出版社”orbook_pub=”電子工業(yè)出版社”orbook_pub=”機械工業(yè)出版社”;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2多條件查詢過濾任務(wù)七3.完成任務(wù)(3)查詢由人民郵電出版社出版的、書名中有“數(shù)據(jù)庫”字樣的書籍信息,包括書號、書名、書價、書作者、出版社。selectbook_id,book_name,book_price,book_author,book_pubfrombookswherebook_pub=”人民郵電出版社”andlocate(“數(shù)據(jù)庫”,book_name)<>0;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3模糊查詢過濾任務(wù)七1.前導(dǎo)知識(1)模糊條件查詢是對于字段取值所給的限定條件中不是很明確的、用常量沒有辦法直接表達的信息。如姓王的借閱者(也就是只知道借閱者叫王某某)、姓名中有“月”字的借閱者、出版社名稱中有“電子”字樣的書等。(2)簡單的比較操作在這里已經(jīng)行不通,需要使用通配行進行匹配查找,為了完成這種功能,MySQL中提供了LIKE這種運算符,LIKE運算符可判斷兩個字符串是否相匹配,其中一個字符串需要使用通配符。這個使用通配符的字符串可稱為匹配字符串,也稱為匹配模式。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3模糊查詢過濾任務(wù)七1.前導(dǎo)知識(3)使用LIKE運算的SELECT語句其語法格式如下:SELECT[DISTINCT]*|字段名表達式1,字段名表達式2,…,字段名表達式nFROM數(shù)據(jù)表名;WHERE字段名[NOT]LIKE“匹配字符串”;說明:可以和LIKE一起使用的通配符有“%”和“_”。百分號通配符(%)通配符(%),匹配任意長度的字符,甚至包括零字符,通配符可以在搜索模式中的任意位置使用,并且可以使用多個通配符。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3模糊查詢過濾任務(wù)七1.前導(dǎo)知識(3)使用LIKE運算的SELECT語句其語法下劃線通配符(_)通配符(_),該通配符的用法和‘%’相同,區(qū)別是'%’可以匹配多個字符,而“_”只能匹配任意單個字符,如果要匹配多個字符,則需要使用相同個數(shù)的“_”。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3模糊查詢過濾任務(wù)七2.任務(wù)內(nèi)容(1)查詢姓王的借閱者信息(2)查詢某某學(xué)院的借閱者信息(3)查詢出版社名稱中有“大學(xué)”字樣的書任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3模糊查詢過濾任務(wù)七3.完成任務(wù)(1)查詢姓王的借閱者信息。select*fromborrowerswhereborr_namelike“王%”;(2)查詢部門在某某學(xué)院的借閱者信息select*fromborrowerswhereborr_deptlike“%學(xué)院”;(3)查詢出版社名稱中有“大學(xué)”字樣的書select*frombookswherebook_publike“%大學(xué)%”;④更改文字內(nèi)容小結(jié)任務(wù)七任務(wù)七條件查詢1、條件表達式2、模糊查詢3、常量和變量4、運算符5、函數(shù)帶聚合函數(shù)的查詢?nèi)蝿?wù)實施任務(wù)準(zhǔn)備
AVG()函數(shù)01
COUNT()函數(shù)0203
聚合函數(shù)01
分組查詢02任務(wù)八
使用聚合函數(shù)的SELECT語句的常見格式03
MAX()/MIN()函數(shù)03
SUM()函數(shù)04任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、聚合函數(shù)任務(wù)八1.常用聚合函數(shù)MySQL提供一些查詢功能,可以對獲取的數(shù)據(jù)進行匯總并報告。要想實現(xiàn)這些功能,必須使用聚合函數(shù)。函數(shù)作用AVG(FieldExpress)返回某列的平均值COUNT(FieldExpress)返回某列的行數(shù)MAX(FieldExpress)返回某列的最大值MIN(FieldExpress)返回某列的最小值SUM(FieldExpress)返回某列的和表4-10SQL聚合函數(shù)任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、分組查詢?nèi)蝿?wù)八1、分組查詢是對數(shù)據(jù)按照某個或多個字段進行分組,MySQL中使用GROUPBY子句對數(shù)據(jù)進行分組,基本語法形式為:[GROUPBY字段名][HAVING<條件表達式>]2、字段名為進行分組時所依據(jù)的列名稱,如果多級分組,即分組的依據(jù)有多個,則多個列名稱按層級順序排列、用逗號隔開;“HAVING<條件表達式>”指定滿足表達式限定條件的結(jié)果將被顯示。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、分組查詢?nèi)蝿?wù)八3、在使用GROUPBY子句時,需要知道以下重要的規(guī)定:●GROUPBY子句可以包含任意數(shù)目的列,因而可以對分組進行嵌套?!袢绻贕ROUPBY子句中嵌套了分組,數(shù)據(jù)將在最后指定的分組上行匯總?!馟ROUPBY子句中列出的每一列都必須是檢索列或有效的表達式(不能是聚合函數(shù))。如果在SELECT中使用表達式,則必須在GROUPBY子句中指定相同的表達式。不能使用別名?!癯奂瘮?shù)外,SELECT語句中的每一列都必須在GROUPBY子中給出。●如果分組列中包含具有NULL值的行,則NULL將作為一個分組返如果列中有多行NULL值,它們將分為一組?!馟ROUPBY子句必須出現(xiàn)在WHERE子句之后,ORDERBY子句之前。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、分組查詢?nèi)蝿?wù)八4、GROUPBY可以和HAVING一起限定顯示記錄所需滿足的條件,只有滿足條件的分組才會被顯示。5、分組中使用WITHROLLUP使用WITHROLLUP關(guān)鍵字之后,在所有查詢出的分組記錄之后增加一條記錄,該記錄計算查詢出的所有記錄的總和,即統(tǒng)計記錄數(shù)量。6、GROUPBY和ORDERBY一起使用某些情況下需要對分組進行排序,在前面的介紹中,ORDERBY用來對查詢的記錄排序,如果和GROUPBY一起使用可以完成對分組的排序。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、使用聚合函數(shù)的查詢常見格式任務(wù)八1、select包含聚合函數(shù)的表達式from數(shù)據(jù)源;
在這種情況下,可以認(rèn)為是將整個數(shù)據(jù)表分為一組。2、select分組依據(jù),包含聚合函數(shù)的表達式
from數(shù)據(jù)源groupby分組依據(jù);3、select分組依據(jù),包含聚合函數(shù)的表達式from數(shù)據(jù)源groupby分組依據(jù)having包含聚合函數(shù)表達式;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1
AVG()函數(shù)任務(wù)八1.前導(dǎo)知識(1)AVG()函數(shù)通過計算返回的行數(shù)和所有行數(shù)據(jù)的和,求得指定列數(shù)據(jù)的平均值。AVG()可以用來返回所有列的平均值,也可以用來返回特定列的平均值。注意:AVG()只能用來確定特定數(shù)值列的平均值,而且列名必須作為函數(shù)參數(shù)給出。為了獲得多個列的平均值,必須使用多個AVG()函數(shù)。AVG()函數(shù)忽略列值為NULL的行。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1AVG()函數(shù)任務(wù)八2.任務(wù)內(nèi)容(1)查詢統(tǒng)計借閱者的年齡均值。(2)查詢書單價的均值。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1
AVG()函數(shù)任務(wù)八3.完成任務(wù)(1)查詢統(tǒng)計借閱者的年齡均值。selectavg(borr_age)fromborrowers;(2)查詢書單價的均值。selectavg(book_price)書價格均值frombooks;注意:以上兩個查詢語句使用了聚合函數(shù),但均未進行分組,其實此時,我們可以理解這種查詢?yōu)椴环纸M或只分一組。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2
COUNT()函數(shù)任務(wù)八1.前導(dǎo)知識COUNT()函數(shù)統(tǒng)計返回結(jié)果中記錄行的總數(shù),其使用方法有兩種:●COUNT(*):計算返回結(jié)果中行的總數(shù),不管某列有數(shù)值或者為空值。●COUNT(字段名):計算返回結(jié)果中指定列下總的行數(shù),計算時將忽略空值的行。注意:指定列的值為空的行被COUNT()函數(shù)忽略,但是如果不指定列,而在COUN()函數(shù)中使用星號“*”,則所有記錄都不忽略。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2
COUNT()函數(shù)任務(wù)八2.任務(wù)內(nèi)容(1)查詢統(tǒng)計每個部門的借閱者人數(shù)。(2)查詢統(tǒng)計每個部門的男女性借閱者人數(shù)。(3)查詢統(tǒng)計每個出版社在當(dāng)前庫中出版的書籍?dāng)?shù)。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2
COUNT()函數(shù)任務(wù)八3.完成任務(wù)(1)查詢統(tǒng)計每個部門的借閱者人數(shù)。selectborr_dept部門,count(*)人數(shù)fromborrowersgroupbyborr_dept;(2)查詢統(tǒng)計每個部門的男女性借閱者人數(shù)。selectborr_dept部門,borr_sex性別,count(*)人數(shù)fromborrowersgroupbyborr_dept,borr_sex;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2
COUNT()函數(shù)任務(wù)八3.完成任務(wù)(3)查詢統(tǒng)計每個出版社在當(dāng)前庫中出版的書籍?dāng)?shù)。selectbook_pub,count(*)frombooksgroupbybook_pub;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3
MAX()/MIN()函數(shù)任務(wù)八1.前導(dǎo)知識(1)MAX()函數(shù)MAX()函數(shù)返回指定列中的最大值。MAX()要求指定列名。注意:MAX()函數(shù)除了用來找出最大的列值,包括返回字符類型的最大值。在對字符類型數(shù)據(jù)進行比較時,按照字符的ASCII碼值大小進行比較,(2)MIN()函數(shù)MIN()函數(shù)返回指定列中的最小值。MIN()要求指定列名。MIN()函數(shù)與MAX()函數(shù)類似,不僅適用于查找數(shù)值類型,也可應(yīng)用于字符類型。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3
MAX()/MIN()函數(shù)任務(wù)八2.任務(wù)內(nèi)容(1)查詢最高書價。(2)查詢借閱者的最小年齡。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3
MAX()/MIN()函數(shù)任務(wù)八3.完成任務(wù)(1)查詢最高書價。selectmax(book_price)最高價frombooks;(2)查詢借閱者的最小年齡。selectmin(borr_age)fromborrowers;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)4
SUM()函數(shù)任務(wù)八1.前導(dǎo)知識SUM()是一個求總和的函數(shù),返回指定列值的總和(總計)。注意:SUM()函數(shù)在計算時,忽略列值為NULL的行。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)4
SUM()函數(shù)任務(wù)八2.任務(wù)內(nèi)容(1)查詢統(tǒng)計書庫中每個出版社的書籍總冊數(shù)。(2)查詢?nèi)霂鞎目偨痤~。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)4
SUM()函數(shù)任務(wù)八3.完成任務(wù)(1)查詢統(tǒng)計書庫中每個出版社的書籍總冊數(shù)。selectbook_pub,sum(*)總冊數(shù)frombooksgroupbybook_pub;(2)查詢?nèi)霂鞎目偨痤~。selectsum(book_price*book_num)總書款frombooks;④更改文字內(nèi)容小結(jié)任務(wù)八任務(wù)八帶聚合函數(shù)的查詢1、聚合函數(shù)2、分組查詢3、使用聚合函數(shù)的SELECT語句的常見格式子查詢?nèi)蝿?wù)實施任務(wù)準(zhǔn)備了解子查詢01子查詢分類02
子查詢的定義01
子查詢的作用02任務(wù)九任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、子查詢的定義任務(wù)九子查詢是指一個查詢語句嵌套在另一個查詢語句內(nèi)部的查詢。它可以嵌套在SELECT語句、INSERTINTO等語句中。在執(zhí)行查詢語句時,首先會執(zhí)行子查詢中的語句,然后將返回的結(jié)果作為外層查詢語句的一部分,一般用于設(shè)置過濾條件放在WHERE子句或HAVING子句后,或作為數(shù)據(jù)源放在FROM子句后。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、子查詢的作用任務(wù)九1、查詢結(jié)果就是一個新關(guān)系,即多條記錄的集合。因此子查詢的結(jié)果往往可以作為外層查詢過慮條件設(shè)置時的一個結(jié)構(gòu),作為條件表達式的一部分參與IN、EXISTS、ANY、ALL等運算,也可以作為關(guān)系表達式的一部分參與關(guān)系運算。2、查詢結(jié)果既然是一個新關(guān)系,因此它也可以作為外層查詢的數(shù)據(jù)源使用,此時子查詢跟在外層查詢的FROM子句后。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1了解子查詢?nèi)蝿?wù)九1.前導(dǎo)知識(1)對于子查詢,我們可以對其進行IN、EXISTS、ANY、ALL等運算,這些運算可以理解為集合與元素之間的運算。(2)IN運算用于判斷一個元素與集合之間是否存在屬于與不屬于的關(guān)系;EXISTS運算可以判斷一個集合是否為空集;ANY則是只要集合中有一個元素使條件滿足,則條件成立;ALL是要求集合中所有元素都能使條件成立,則條件才成立。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1了解子查詢?nèi)蝿?wù)九2.任務(wù)內(nèi)容(1)查詢年齡最大的幾位借閱者的編號、姓名和部門。(2)查詢所有在職能部門的、女性借閱者信息。(3)查詢書單價高于書均價的書籍信息。(4)查詢由清華大學(xué)出版社出版的、書名中有“數(shù)據(jù)庫”字樣的書。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1了解子查詢?nèi)蝿?wù)九3.完成任務(wù)(1)查詢年齡最小的幾位借閱者的編號、姓名和部門。selectborr_id,borr_name,borr_deptfromborrowerswhereborr_age=(selectmax(borr_age)fromborrowers);(2)查詢所有在職能部門的、女性借閱者信息。selectborr_id,borr_name,borr_dept,borr_agefrom(select*fromborrowerswheresubstr(borr_id,1,5)=”12977”)astmpwhereborr_sex=”女”;注意:當(dāng)子查詢作為數(shù)據(jù)源時,一定要給子查詢的查詢結(jié)果起別名任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1了解子查詢?nèi)蝿?wù)九3.完成任務(wù)(3)查詢書單價高于書均價的書籍信息,列出書號、書名、書作者、出版社、書單價。selectbook_id,book_name,book_author,book_pub,book_pricefrombookswherebook_price>(selectavg(book_price)frombooks);任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2子查詢分類任務(wù)九1.前導(dǎo)知識根據(jù)子查詢出現(xiàn)在SELECT語句的位置,我們可以將子查詢分為三種類型,即where型子查詢、from型子查詢和having型子查詢。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2子查詢分類任務(wù)九2.任務(wù)內(nèi)容(1)查詢來自圖文信息中心、年齡超過40歲的借閱者信息。(2)查詢書單價不高于書均價的書籍信息,列出書號、書名、書作者、出版社、書單價。(3)查詢借閱量不低于3本的借閱者信息。(要求用having型)任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2子查詢分類任務(wù)九3.完成任務(wù)(1)查詢來自圖文信息中心、年齡超過40歲的借閱者信息。select*from(select*fromborrowerswhereborr_dept=”圖文信息中心”asborr_deptwhereborr_age>40;(2)查詢書單價不高于書均價的書籍信息,列出書號、書名、書作者、出版社、書單價。selectbook_id,book_name,book_author,book_pub,book_pricefrombookswherebook_price<=(selectavg(book_price)frombooks);任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2子查詢分類任務(wù)九3.完成任務(wù)(3)查詢借閱量不低于3本的借閱者信息。(要求用having型)select*fromborrowersasagroupbyborr_idhaving(selectcount(*)fromborrowerswhereborr_id=a.borr_id)>=3;④更改文字內(nèi)容小結(jié)任務(wù)九任務(wù)九子查詢1、子查詢的定義2、子查詢的作用多表連接查詢?nèi)蝿?wù)實施任務(wù)準(zhǔn)備內(nèi)連接查詢外連接查詢交叉連接查詢010203
連接查詢的定義01
連接的意義02任務(wù)十任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、連接查詢的定義任務(wù)十所謂連接查詢,是先將多張表的關(guān)系模式按照一定的方式整合成一個關(guān)系模式的過程,這個過程就是連接;再把這個新的關(guān)系模式當(dāng)作數(shù)據(jù)源進行的查詢操作則稱為連接查詢。任務(wù)實施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、連接的意義任務(wù)十1、由于關(guān)系模式中規(guī)范化要求,通常將每個實體的所有信息存放在一個表中,因此,當(dāng)查詢的信息涉及到實體與實體之間聯(lián)系時,必然要對多張表的內(nèi)容進行查詢,這時有一種辦法就是先將分散存放有各類信息的多張表連接起來形成一張包含所需全部信息的新關(guān)系,然后再對此新關(guān)系進行查詢,從而得到操作者想要的結(jié)果。2、因此說,連接的作用就是既支持?jǐn)?shù)據(jù)規(guī)范化的要求,又滿足了信息查詢的需求。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1內(nèi)連接查詢?nèi)蝿?wù)十1.前導(dǎo)知識內(nèi)連接又稱簡單連接或自然連接,是一種常見的連接查詢。內(nèi)連接使用比較運算符對兩個表中的數(shù)據(jù)進行比較,并列出與連接條件匹配的數(shù)據(jù)行,組成新的記錄,也就是說在內(nèi)連接查詢中,只有滿足條件的記錄才能出現(xiàn)在查詢結(jié)果中。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1內(nèi)連接查詢?nèi)蝿?wù)十2.任務(wù)內(nèi)容(1)查詢借閱者的姓名、所在部門,借閱圖書的圖書名稱、借書日期、還書截止日期。(2)查詢每本書的圖書編號、圖書名稱、圖書分類名稱。(3)查詢借書量在3本及以上的借閱者姓名、所在部門。任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1內(nèi)連接查詢?nèi)蝿?wù)十3.完成任務(wù)(1)查詢借閱者的姓名、所在部門,借閱圖書的圖書名稱、借書日期、還書截止日期。selecta.borr_name,a.borr_dept,b.book_name,c.borrow_date,c.expect_return_datefromborrowersainnerjoinborrowscona.borr_id=c.borr_idinnerjoinbooksbonb.book_id=c.book_id;任務(wù)實施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1內(nèi)連接查詢?nèi)蝿?wù)十3.完成任務(wù)(2)查詢每本書的圖書編號、圖書名稱、圖書分類名稱。selectbook_id,book_name,book_sortfrombooksinnerj
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年重慶海聯(lián)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案詳解1套
- 2026年鄭州工業(yè)應(yīng)用技術(shù)學(xué)院單招職業(yè)技能測試題庫及參考答案詳解
- 2026年資陽環(huán)境科技職業(yè)學(xué)院單招職業(yè)傾向性考試題庫及答案詳解一套
- 2026年江漢藝術(shù)職業(yè)學(xué)院單招職業(yè)傾向性考試題庫參考答案詳解
- 2026年廣東省茂名市單招職業(yè)適應(yīng)性考試題庫及參考答案詳解1套
- 事業(yè)編法律面試題及答案
- 巴斯夫安全員面試題及答案
- 村莊之間集體土地置換協(xié)議書范本
- 2025年北京市上地實驗學(xué)校招聘備考題庫及參考答案詳解一套
- 2025護士年終考核個人總結(jié)(2篇)
- 科睿唯安 2025-年最值得關(guān)注的公司:蛋白質(zhì)降解劑-使針對“不可成藥”靶點的精準(zhǔn)干預(yù)成為可能
- 民航招飛pat測試題目及答案
- 2025年Unity3D交互設(shè)計沖刺模擬專項卷
- 2026年元旦校長致辭:凱歌高奏辭舊歲歡聲笑語迎新年
- 中孕引產(chǎn)護理查房
- 食育課三明治課件
- DB3305∕T 280-2023 湖州黃茶加工技術(shù)規(guī)程
- 病房結(jié)核應(yīng)急預(yù)案
- 2026考研政治模擬預(yù)測卷及答案
- 福建省龍巖市龍巖北附2026屆化學(xué)高一第一學(xué)期期末綜合測試試題含解析
- 2025-2026學(xué)年八年級數(shù)學(xué)上冊人教版(2024)第17章 因式分解 單元測試·基礎(chǔ)卷
評論
0/150
提交評論