《MySQL數(shù)據(jù)庫項目式教程》項目五 數(shù)據(jù)查詢_第1頁
《MySQL數(shù)據(jù)庫項目式教程》項目五 數(shù)據(jù)查詢_第2頁
《MySQL數(shù)據(jù)庫項目式教程》項目五 數(shù)據(jù)查詢_第3頁
《MySQL數(shù)據(jù)庫項目式教程》項目五 數(shù)據(jù)查詢_第4頁
《MySQL數(shù)據(jù)庫項目式教程》項目五 數(shù)據(jù)查詢_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

MySQL項目五數(shù)據(jù)查詢2019年7月掌握常用聚合函數(shù)的使用方法學(xué)習(xí)單表查詢與多表查詢的方法學(xué)習(xí)目標(biāo)MySQL熟悉select語句的基本語法具有使用Navicat工具完成數(shù)據(jù)查詢的能力重點、難點重點MySQLselect語句的基本語法一一、select語句的基本語法MySQLselect[all|distinct]要查詢的內(nèi)容from表名列表[where條件][groupby字段列表[having分組條件]][orderby字段列表[asc|desc]][limit[offset,]n];語法格式:一、select語句的基本語法MySQLfrom表名列表:用于指定查詢的數(shù)據(jù)表的名稱以及它們之間的邏輯關(guān)系。where條件:用于按指定條件進(jìn)行查詢。groupby字段列表:用于指定將查詢結(jié)果根據(jù)什么字段進(jìn)行分組。having分組條件:用于指定對分組的過濾條件,選擇滿足條件的分組記錄。orderby字段列表[asc|desc]:用于指定查詢結(jié)果集的排序方式,默認(rèn)為升序。asc用于表示結(jié)果集按指定的字段升序排列,desc表示結(jié)果集按指定的字段以降序排列。limit[offset,]n:用于限制查詢結(jié)果的數(shù)量。參數(shù)說明:一、select語句的基本語法MySQL在上述語法結(jié)構(gòu)中,select語句共有6個子句,其中select和from子句為必選子句,而where、groupby、orderby和limit子句為可選子句,having子句與groupby子句聯(lián)合使用,不能單獨(dú)使用注意:MySQL單表查詢二二、單表查詢MySQL1.查詢所有字段select*from表名;語法格式:select*fromstudent;示例語句:二、單表查詢MySQL2.查詢指定字段select字段名列表from表名;語法格式:selectstuNo,name,sexfromstudent;示例語句:二、單表查詢MySQL3.定義查詢字段的別名select字段名[as]別名from表名;語法格式:selectstuNo學(xué)號,name姓名,sex性別fromstudent;示例語句:二、單表查詢MySQL4.消除查詢結(jié)果集中重復(fù)行selectdistinct字段名列表from表名;語法格式:selectdistinctspecfromstudent;示例語句:二、單表查詢MySQL5.where子句select字段名列表from表名where條件;語法格式:select*fromstudentwheresex='女';帶比較運(yùn)算符的where條件示例語句:注意:MySQL支持的比較運(yùn)算符有=、>、<、>=、<=、<>或!=等二、單表查詢MySQL5.where子句select*fromstudentwherespec='電子商務(wù)'andsex='男';帶邏輯運(yùn)算符的where條件示例語句:注意:邏輯運(yùn)算用于將多個表達(dá)式通過邏輯運(yùn)算符非、與、或(!或NOT、&&或and、||或OR)來組成更為復(fù)雜的查詢條件二、單表查詢MySQL5.where子句select*fromstudentwherenamelike'王%';帶LIKE關(guān)鍵字的where條件示例語句:注意:LIKE關(guān)鍵字用于模糊查詢,它有兩種通配符:“%”、和下劃線“_”?!?”可以匹配一個或多個字符,而下劃線“_”則表示匹配一個字符。二、單表查詢MySQL5.where子句select*fromstudentwherebirthdaybetween'2001-01-01'and'2001-12-31';帶betweenand關(guān)鍵字的where條件示例語句:注意:betweenand用于判斷指定字段的值是否在指定的范圍內(nèi)。如果字段的值在指定范圍內(nèi),則滿足查詢條件的記錄將會被查詢出來;如果不在指定范圍內(nèi),則不滿足條件。二、單表查詢MySQL5.where子句select*fromstudentwherestuNoIN('190003','190005');帶IN關(guān)鍵字的where條件示例語句:注意:IN關(guān)鍵字用于判斷某個字段的值是否在指定的集合中。如果字段的值在集合中,則滿足條件的記錄將被顯示出來;如果不在集合中,則不滿足條件。二、單表查詢MySQL5.where子句select*fromstudentwherephoneisnotnull;帶空值比較的where條件示例語句:注意:當(dāng)需要判斷一個表達(dá)式的值是否為空值時,可使用ISnull或ISNOTnull關(guān)鍵字。二、單表查詢MySQL6.orderby子句select字段名列表from表名where條件orderby字段列表[asc|desc];語法格式:參數(shù)說明:字段列表:可以在orderby子句中指定多個字段,查詢結(jié)果首先按照第一個字段的值排序,第一個字段值相同的數(shù)據(jù)行,再按照第二個字段值排序,依次類推。[asc|desc]:可以規(guī)定數(shù)據(jù)行按升序排序(使用參數(shù)asc),也可以規(guī)定數(shù)據(jù)行按降序排序(使用參數(shù)、desc),默認(rèn)參數(shù)為升序。orderby子句要寫在where子句的后面。二、單表查詢MySQL7.limit子句[limit[offset,]n];語法格式:說明:limit子句是select語句的最后一個子句,主要用于限制查詢結(jié)果集返回的行數(shù)select*fromstudentorderbybirthdaylimit3;示例語句:二、單表查詢MySQL8.將查詢結(jié)果插入到新表createtable<新表名>(select字段1,字段2,……from原表);語法格式:createtable:表示創(chuàng)建一個新表,專門用于保存查詢結(jié)果。新表名:表示將查詢結(jié)果保存至某個新表的名字,要注意的是,這個新表無須提前創(chuàng)建,系統(tǒng)會自動根據(jù)查詢的結(jié)果集創(chuàng)建表的結(jié)構(gòu)并添加記錄。select:表示查詢,可用“*”表示查詢表的全部字段,該命令的具體用法將在后續(xù)的項目中學(xué)習(xí)。參數(shù)說明:二、單表查詢MySQL9.將查詢結(jié)果插入到已經(jīng)存在的表insertinto<表名><子查詢語句>;語法格式:<表名>:表示一個已經(jīng)存在表,用于插入新的查詢結(jié)果到這個表中。<子查詢語句>:表示準(zhǔn)備存放至新表的查詢結(jié)果記錄集。參數(shù)說明:insertintonewstudentselect*fromstudentwherestuNo='190003';示例語句:MySQL統(tǒng)計查詢?nèi)⒔y(tǒng)計查詢MySQL1.聚合函數(shù)表達(dá)式:可以是常量、字段名、函數(shù)。all|distinct:all表示對所有值進(jìn)行運(yùn)算,distinct表示去除重復(fù)值,默認(rèn)為all。count(*):使用count(*)函數(shù)時將返回檢索行的總數(shù)目,不論其是否包含null值。count(all|distinct表達(dá)式|*);Count函數(shù)語法格式:參數(shù)說明:selectcount(*)as學(xué)生總?cè)藬?shù)fromstudent;示例語句:三、統(tǒng)計查詢MySQL1.聚合函數(shù)max和min函數(shù)分別用于統(tǒng)計表中滿足條件的所有值項的最大值和最小值max/min(all|distinct表達(dá)式);max和min函數(shù)語法格式:參數(shù)說明:selectcouNoas課程號,max(result)as最高分,min(result)as最低分fromscorewherecouNo='g01';示例語句:三、統(tǒng)計查詢MySQL1.聚合函數(shù)sum和avg函數(shù)分別用于統(tǒng)計表中滿足條件的所有值項的總和與平均值。sum/avg(all|distinct表達(dá)式);sum和avg函數(shù)語法格式:參數(shù)說明:selectcouNoas課程號,sum(result)as總分,avg(result)as平均分fromscorewherecouNo='g01';示例語句:三、統(tǒng)計查詢MySQL2.groupby子句groupby:該子句可以根據(jù)一個或多個字段進(jìn)行分組。使用groupby子句進(jìn)行分組統(tǒng)計時,select子句要查詢的字段只能是以下兩種情況:第一,字段應(yīng)用了聚合函數(shù);第二,未應(yīng)用聚合函數(shù)的字段必須包含在groupby子句中。having子句與groupby子句的區(qū)別:第一,where子句設(shè)置的查詢篩選條件在groupby子句之前發(fā)生作用,并且條件不能使用聚合函數(shù);第二,having子句設(shè)置的查詢篩選條件在groupby子句之后發(fā)生作用,并且條件中允許使用聚合函數(shù)。select字段名列表from表名[where條件]groupby字段列表|表達(dá)式[having分組條件];語法格式:參數(shù)說明:三、統(tǒng)計查詢MySQL2.groupby子句selectcouNoas課程號,max(result)as最高分,min(result)as最低分fromscoregroupbycouNohavingcouNo='g01'||couNo='z02';groupby子句示例語句:MySQL多表查詢四四、多表查詢MySQL[表名.]目標(biāo)字段名[as]別名:指顯示的查詢結(jié)果的字段名,若查詢結(jié)果的字段在兩個表之間的重名字段,則需要指定顯示具體某個表的字段名,否則[表名]部分可以省略。on連接條件:指表與表之間連接的條件,一般是指表之間擁有相同的值的列。連接類型:主要包括內(nèi)連接與外連接兩種類型select[表名.]目標(biāo)字段名[as]別名,……from表1[as別名]連接類型表2[as別名]on連接條件[where條件表達(dá)式];語法格式:參數(shù)說明:三、統(tǒng)計查詢MySQL1.內(nèi)連接select字段名列表from表1[as別名][inner]join表2[as別名]on表1.字段名比較運(yùn)算符表2.字段名[where條件表達(dá)式];語法格式(1):select字段名列表from表1[as別名],表2[as別名]where表1.字段名比較運(yùn)算符表2.字段名語法格式(2):三、統(tǒng)計查詢MySQL1.內(nèi)連接字段名列表:指顯示的查詢結(jié)果的字段名,若查詢結(jié)果的字段在兩個表之間的重名字段,則需要指定使用[表名.字段名]的格式。on連接條件:指表與表之間連接的條件,一般是指表之間擁有相同的值的列。參數(shù)說明:三、統(tǒng)計查詢MySQL1.內(nèi)連接selects.stuNo,c.couName,s.resultfromcourseascinnerjoinscoreassonc.couNo=s.couNo;示例語句(1):selects.stuNo,c.couName,s.resultfromcourseasc,scoreasswherec.couNo=s.couNo;示例語句(2):三、統(tǒng)計查詢MySQL2.外連接select字段名列表from表1[as別名]left|right|fulljoin表2[as別名]on表1.字段名比較運(yùn)算符表2.字段名;語法格式:參數(shù)說明:字段名列表與on:這里的字段名列表與on關(guān)鍵字的用法與內(nèi)連接的用法一致,但外連接只適用于兩個表。left:指左外連接,即左表為主表,連接關(guān)鍵字為leftjoin。right:指右外連接,即右表為主表,連接關(guān)鍵字為rightjoin。full:指全外連接,查詢結(jié)果集中包括兩個表的所有數(shù)據(jù)行。MySQL子查詢五五、子查詢MySQLselectstuNo,couNo,resultfromscorewhereresult>(selectavg(result)fromscoregroupbystuNohavingstuNo='190001');在學(xué)生成績管理數(shù)據(jù)庫mystudent中,查詢比學(xué)號為“190001”的平均成績的高的學(xué)生學(xué)號、課程號、成績信息,示例語句如下:1.帶比較運(yùn)算符的子查詢五、子查詢MySQLselectstuNo,namefromstudentwherestuNo=any(selectstuNofromscorewhereresult<60);在學(xué)生成績管理數(shù)據(jù)庫mystudent中,查詢考試有不及格的學(xué)生學(xué)號及姓名,示例語句如下:2.帶IN關(guān)鍵字的子查詢五、子查詢MySQLselect*fromstudentwherestuNo=any(selectstuNofromscorewhereresult<60);在學(xué)生成績管理數(shù)據(jù)庫mystudent中,查詢考試有不及格的學(xué)生基本信息,示例語句如下:3.批量比較子查詢MySQL合并查詢結(jié)果集六六、合并查詢結(jié)果集MySQLselectstuNoas學(xué)號,nameas姓名fromstudentunionselectcouNoas學(xué)號,couNameas姓名fromcourse;在學(xué)生成績管理數(shù)據(jù)庫mystudent中,輸出所有學(xué)生和課程的編號和名字信息,示例語句如下:MySQL使用Navicat工具實現(xiàn)數(shù)據(jù)查詢七七、使用Navicat工具實現(xiàn)數(shù)據(jù)查詢MySQL1.在左側(cè)“連接樹”工具欄中打開mystudent數(shù)據(jù)庫,單擊工作區(qū)中的“新建查詢”按鈕;圖1新建查詢七、使用Navicat工具實現(xiàn)數(shù)據(jù)查詢MySQL2.在“查詢創(chuàng)建工具”中可以選擇要查詢的表和字段,以及輸入相應(yīng)的查詢條件;圖2通過查詢創(chuàng)建工具輔助創(chuàng)建查詢七、使用Navicat工具實現(xiàn)數(shù)據(jù)查詢MySQL3.在工作區(qū)中設(shè)置好相應(yīng)的查詢子句,再點擊主界面上的“運(yùn)行”按鈕;圖3在Navicat工具中運(yùn)行查詢七、使用Navicat工具實現(xiàn)數(shù)據(jù)查詢MySQL4.此外也還可以在“查詢編輯器”中直接輸入查詢的select語句直接運(yùn)行;圖4在查詢編輯器工具中運(yùn)行查詢MySQL任務(wù)實施八八、任務(wù)實施MySQL1.查詢所有電子商務(wù)專業(yè)所有男生的基本信息,SQL語句如下:select*

溫馨提示

  • 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

提交評論