數(shù)據(jù)庫技術(shù)與應(yīng)用 課件 項目5 檢索學生成績管理系統(tǒng)中的數(shù)據(jù)_第1頁
數(shù)據(jù)庫技術(shù)與應(yīng)用 課件 項目5 檢索學生成績管理系統(tǒng)中的數(shù)據(jù)_第2頁
數(shù)據(jù)庫技術(shù)與應(yīng)用 課件 項目5 檢索學生成績管理系統(tǒng)中的數(shù)據(jù)_第3頁
數(shù)據(jù)庫技術(shù)與應(yīng)用 課件 項目5 檢索學生成績管理系統(tǒng)中的數(shù)據(jù)_第4頁
數(shù)據(jù)庫技術(shù)與應(yīng)用 課件 項目5 檢索學生成績管理系統(tǒng)中的數(shù)據(jù)_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目5檢索學生成績管理系統(tǒng)中的數(shù)據(jù)數(shù)據(jù)庫應(yīng)用基礎(chǔ)添加數(shù)據(jù)的方法有哪兩種?插入一條數(shù)據(jù)的語法?如何刪除表中的全部數(shù)據(jù)?INSERT[INTO]<表名>[(<列名1>[,…<列名n>])]VALUES(值1)[…,(值n)]DELETE

FROM

<表名>界面方式和命令方式復(fù)習

掌握SELECT語句的語法(重點)

掌握條件查詢基本方法(重點)

掌握分組與匯總方法(重點、難點)掌握實現(xiàn)連接查詢的方法(重點)掌握實現(xiàn)子查詢的方法(重點、難點)本章目標

使用簡單查詢語句進行單表數(shù)據(jù)的檢索

使用條件查詢

查詢排序和限制查詢結(jié)果條數(shù)

使用分組和匯總查詢數(shù)據(jù)

使用連接查詢進行多表數(shù)據(jù)的檢索

使用子查詢進行數(shù)據(jù)檢索、插入、更新和刪除本章任務(wù)數(shù)據(jù)庫管理系統(tǒng)的一個最重要的功能就是數(shù)據(jù)查詢,查詢數(shù)據(jù)是指從數(shù)據(jù)庫中根據(jù)需求,使用不同的查詢方式來獲取不同的數(shù)據(jù),是使用頻率最高、最重要的操作。數(shù)據(jù)查詢不只是簡單查詢數(shù)據(jù)庫中存儲的數(shù)據(jù),還可以根據(jù)需要對數(shù)據(jù)進行篩選,以及確定數(shù)據(jù)以什么樣的格式顯示。MySQL提供了功能強大、靈活的語句來實現(xiàn)這些操作??梢允褂肧ELECT語句從表或者視圖中查詢數(shù)據(jù),SELECT語句的結(jié)果稱為結(jié)果集,它是行列表,每行由相同數(shù)量的列組成。SELECT語句概述1、SELECT語句簡單查詢SELECT的語法格式如下:SELECT{*|<字段列名>}[FROM<表1>,<表2>…[WHERE<表達式>[GROUPBY<groupbydefinition>[HAVING<expression>[{<operator><expression>}…]][ORDERBY<orderbydefinition>][LIMIT[<offset>,]<rowcount>]]SELECT語句的語法1、SELECT語句簡單查詢說明:(1){*|<字段列名>}:包含星號通配符的字段列表,表示所要查詢字段的名稱。(2)<表1>,<表2>…,:表1和表2表示查詢數(shù)據(jù)的來源,可以是單個或多個。(3)WHERE<表達式>:是可選項,如果選擇該項,將限定查詢數(shù)據(jù)必須滿足該查詢條件。(4)GROUPBY<字段>:該子句告訴MySQL如何顯示查詢出來的數(shù)據(jù),并按照指定的字段分組。(5)[ORDERBY<字段>]:該子句告訴MySQL按什么樣的順序顯示查詢出來的數(shù)據(jù),可以進行的排序有升序(ASC)和降序(DESC),默認情況下是升序。(6)[LIMIT[<offset>,]<rowcount>]:該子句告訴MySQL每次顯示查詢出來的數(shù)據(jù)條數(shù)。查詢表中所有列查詢表中指定列給表中字段名指定別名計算列值消除重復(fù)數(shù)據(jù)簡單查詢語句1、SELECT語句簡單查詢查詢表中所有列說明:(1)*能匹配表中的所有字段名,即查詢了表中所有的列。(2)表名:查詢數(shù)據(jù)的來源,指數(shù)據(jù)庫中的表或者視圖。簡單查詢語句1、SELECT語句簡單查詢語法格式:SELECT*FROM表名;查詢表中所有列簡單查詢語句1、SELECT語句簡單查詢動手操作:從學生表student中查詢所有學生的信息注意:(1)使用“*”查詢表中所有數(shù)據(jù),查詢結(jié)果的字段順序與表中的字段順序一致。(2)SELECT子句指定表中的所有字段,也能實現(xiàn)查詢表中所有列。查詢結(jié)果的字段順序與SELECT子句字段順序一致。查詢表中指定列說明:(1)字段1,字段2...:字段名要與表名中的字段名一致。字段之間用英文逗號隔開。簡單查詢語句1、SELECT語句簡單查詢語法格式:SELECT字段1,字段2...FROM表名;查詢表中指定列簡單查詢語句1、SELECT語句簡單查詢動手操作:從學生表student中查詢學生的學號sno,姓名sname,性別gender給表中字段名指定別名如果要在查詢的結(jié)果中顯示的名字與原表中的字段名(英文)不一樣,比如用中文顯示,可以給列指定別名實現(xiàn)。說明:(1)別名:需要用引號引起來。注意:使用AS關(guān)鍵字指定列的別名,也可以省略。省略后需要將字段名和別名用空格隔開。簡單查詢語句1、SELECT語句簡單查詢語法格式:SELECT字段1AS別名,字段2AS別名...FROM表名;給表中字段名指定別名簡單查詢語句1、SELECT語句簡單查詢動手操作:從學生表student中查詢學生的學sno,姓名sname,性別gender,查詢結(jié)果中要顯示別名學號、姓名和性別。計算列值查詢結(jié)果中可以輸出列的計算后的值,即SELECT后面可以使用表達式。表達式可以是MySQL支持的任何運算表達式說明:(1)字段參與的表達式:字段可以直接參與運算。簡單查詢語句1、SELECT語句簡單查詢語法格式:SELECT字段參與的表達式FROM表名;計算列值簡單查詢語句1、SELECT語句簡單查詢動手操作:從學生表student中查詢學生的學號、姓名和年齡。消除重復(fù)數(shù)據(jù)DISTINCT

關(guān)鍵字的主要作用就是對數(shù)據(jù)表中一個或多個字段重復(fù)的數(shù)據(jù)進行過濾,只返回其中的一條數(shù)據(jù)說明:(1)字段名:為需要消除重復(fù)記錄的字段名稱,多個字段時用逗號隔開。簡單查詢語句1、SELECT語句簡單查詢語法格式:SELECTDISTINCT<字段名>FROM<表名>;消除重復(fù)數(shù)據(jù)簡單查詢語句1、SELECT語句簡單查詢動手操作:從學生表student中查詢學生所屬班級cnoWHERE子句緊跟在FROM子句之后,在WHERE子句中使用一個條件從FROM子句的中間結(jié)果中選取行。使用WHERE關(guān)鍵字的語法格式如下:WHERE<查詢條件>說明:(1)查詢條件:

1)帶比較運算符的查詢條件

2)帶邏輯運算符的查詢條件

3)帶BETWEENAND關(guān)鍵字的查詢條件WHERE子句2、使用條件查詢說明:(1)查詢條件:

4)帶IN關(guān)鍵字的查詢條件

5)帶LIKE關(guān)鍵字的查詢條件

6)帶ISNULL關(guān)鍵字的查詢條件(2)WHERE子句會根據(jù)查詢條件對FROM子句中的中間結(jié)果行逐一進行判斷,當條件為TRUE的時候,一行就被包含到WHERE子句的中間結(jié)果中。WHERE子句2、使用條件查詢比較運算比較運算符用于比較兩個表達式的值,MySQL支持的比較運算符有等于=、小于<、小于等于<=、大于>、大于等于>=、不等于<>或!=。說明:比較運算符:=、<、<=、>、>=、<>或者!=查詢條件2、使用條件查詢語法格式:表達式{比較運算符}表達式;比較運算查詢條件2、使用條件查詢動手操作:從學生表student中查詢男生的學號、姓名和出生日期比較運算查詢條件2、使用條件查詢動手操作:從學生表student中查詢年齡大于等于21歲的學生的學號、姓名。邏輯運算WHERE關(guān)鍵詞后可以有多個查詢條件,多個查詢條件時用到邏輯運算符AND(&&)、OR(||)、XOR和NOT(!)隔開。說明:(1)AND:記錄滿足所有查詢條件時,才會被查詢出來。(2)OR:記錄滿足任意一個查詢條件時,才會被查詢出來。(3)XOR:記錄滿足其中一個條件,并且不滿足另一個條件時,才會被查詢出來。查詢條件2、使用條件查詢語法格式:條件1{AND|OR|XOR}條件2;邏輯運算查詢條件2、使用條件查詢動手操作:從學生表student中查詢年齡大于等于21歲的男學生的學號、姓名邏輯運算查詢條件2、使用條件查詢動手操作:從教師表teacher中查詢男性或者職稱為“副教授”的教師工號、姓名范圍比較使用BETWEENAND關(guān)鍵字的基本語法格式如下:說明:(1)NOT:可選參數(shù),表示指定范圍之外的值。如果字段值不滿足指定范圍內(nèi)的值,則這些記錄被返回。(2)取值1:表示范圍的起始值。(3)取值2:表示范圍的終止值。(4)BETWEENEND關(guān)鍵字是用來查詢某個范圍內(nèi)的值,該操作符需要兩個參數(shù),即范圍的開始值和結(jié)束值,如果字段值滿足指定的范圍查詢條件,則返回TRUE這些記錄被返回(包含邊界值)。使用NOT時則相反。查詢條件2、使用條件查詢語法格式:表達式[NOT]BETWEEN取值1AND取值2;范圍比較使用IN關(guān)鍵字的基本語法格式如下:說明:IN關(guān)鍵字用的最多的是子查詢(后面講解),也可以用于OR運算。查詢條件2、使用條件查詢語法格式:WHERE表達式[NOT]IN(子查詢|表達式1[,...表達式n]);范圍比較查詢條件2、使用條件查詢動手操作:從教師表teacher中查詢工齡為10-20的教師工號、姓名范圍比較查詢條件2、使用條件查詢動手操作:從學生表student中查詢班級號為“Soft2101“和“Soft2102”的學生學號、姓名和班級號模式匹配在MySQL中,LIKE

關(guān)鍵字主要用于搜索匹配字段中的指定內(nèi)容實現(xiàn)模糊查詢。說明:(1)NOT:可選參數(shù),字段中的內(nèi)容與指定的字符串不匹配時滿足條件。(2)字符串:指定用來匹配的字符串?!白址笨梢允且粋€很完整的字符串,也可以包含通配符。查詢條件2、使用條件查詢語法格式:[NOT]LIKE

'字符串';模式匹配通配符是一種特殊語句,主要用來模糊查詢。當不知道真正字符或者懶得輸入完整名稱時,可以使用通配符來代替一個或多個真正的字符。

LIKE關(guān)鍵字支持百分號“%”和下劃線“_”通配符。查詢條件2、使用條件查詢注意:(1)匹配的字符串必須加單引號或雙引號。(2)如果查詢內(nèi)容中包含通配符,可以使用“\”轉(zhuǎn)義符,也可以使用ESCAPE指定轉(zhuǎn)義符。模式匹配查詢條件2、使用條件查詢動手操作:從學生表student中查詢姓“周”的學生的學號和姓名范圍比較查詢條件2、使用條件查詢動手操作:從學生表student中查詢Soft2102班的姓名為兩個字的學生的學號和姓名范圍比較查詢條件2、使用條件查詢動手操作:從學生表student中查詢住“長沙”學生的學號和姓名空值比較MySQL提供了

ISNULL

關(guān)鍵字,用來判斷字段的值是否為空值(NULL)。如果字段的值是空值,則滿足查詢條件,該記錄將被查詢出來。如果字段的值不是空值,則不滿足查詢條件。查詢條件2、使用條件查詢注意:(1)“NOT”是可選參數(shù),表示字段值不是空值時滿足條件語法格式:表達式IS[NOT]NULL;模式匹配查詢條件2、使用條件查詢動手操作:從學生表student中查詢沒有填寫地址信息的學生學號和姓名使用ORDERBY子句可以讓查詢結(jié)果集按照一定的順序排序。說明:(1)可以按照多個字段排序,之間用逗號隔開。(2)ASC|DESC:ASC表示升序排序,DESC表示降序排序,系統(tǒng)默認為ASC。(3)不同數(shù)據(jù)類型,升序的含義如下:

1)數(shù)字類型:小值在前面顯示;2)日期類型:早的日期在前面顯示;3)字符類型:依據(jù)字母順序顯示,a在前,z最后;4)空值:顯示在最后。ORDERBY子句3、查詢排序和限制查詢結(jié)果條數(shù)語法格式:ORDERBY字段名[ASC|DESC],…;ORDERBY子句查詢排序動手操作:從學生表student中查詢學生的學號、姓名和出生日期,按照出生日期降序排序3、查詢排序和限制查詢結(jié)果條數(shù)ORDERBY子句查詢排序動手操作:從課程表lesson中查詢“必修課”課程信息,按照學分credit升序排序3、查詢排序和限制查詢結(jié)果條數(shù)ORDERBY子句查詢排序動手操作:從教師表teacher中查詢教師信息,按照職稱升序排序,教師編號降序排序3、查詢排序和限制查詢結(jié)果條數(shù)LIMIT子句是SELECT語句的最后一個子句,用于限制SELECT語句返回的行數(shù)。SELECT返回所有匹配的行,有可能是表中所有的行,如僅僅需要返回第一行或者前幾行,使用LIMIT關(guān)鍵字。說明:(1)初始位置:表示從哪條記錄開始顯示。第一條記錄的位置是0,第二條記錄的位置是1,后面的記錄依次類推,系統(tǒng)默認為0。(2)記錄數(shù):表示顯示記錄的條數(shù)。LIMIT子句3、查詢排序和限制查詢結(jié)果條數(shù)語法格式:LIMIT[初始位置,]記錄數(shù);LIMIT子句限制查詢結(jié)果條數(shù)動手操作:從學生表student中查詢學生的學號、姓名,顯示前5條數(shù)據(jù)3、查詢排序和限制查詢結(jié)果條數(shù)LIMIT子句限制查詢結(jié)果條數(shù)動手操作:從學生表student中查詢學生的學號、姓名,顯示第3-5共3條數(shù)據(jù)3、查詢排序和限制查詢結(jié)果條數(shù)LIMIT子句限制查詢結(jié)果條數(shù)動手操作:從成績表studing中查詢Le0005課程成績排在前三名的學生學號、課程號和成績3、查詢排序和限制查詢結(jié)果條數(shù)聚合函數(shù)在一個行的集合(一組行)上進行操作,對每個組給一個結(jié)果。聚合函數(shù)通常與GROUPBY子句一起使用。如果沒有GROUPBY子句,聚合函數(shù)把所有的行集合當做一個組,產(chǎn)生一行結(jié)果;否則按照分組,每個組產(chǎn)生一行結(jié)果。聚合函數(shù)4、使用分組和匯總查詢數(shù)據(jù)說明:(1)表達式:可以是列名、常量、函數(shù)或表達式。(2)默認情況下,函數(shù)忽略列值為NULL的行,不參與計算。(3)*:返回檢索到的所有行的總數(shù)據(jù),包含NULL值。(4)ALL|DISTINCT:ALL表示對所有值進行運算,DISTINCT表示去除重復(fù)值,默認為ALL。聚合函數(shù)4、使用分組和匯總查詢數(shù)據(jù)語法格式:COUNT(*|{[ALL|DISTINCT]表達式})

MAX/MIN/SUM/AVG({[ALL|DISTINCT]表達式})COUNT()聚合函數(shù)動手操作:從學生表student中統(tǒng)計學生人數(shù)4、使用分組和匯總查詢數(shù)據(jù)MAX()、MIN()、AVG()、SUM()聚合函數(shù)動手操作:從成績表studing中統(tǒng)計Le0005課程考試成績的最高分、最低分、平均成績和總分4、使用分組和匯總查詢數(shù)據(jù)GROUPBY

關(guān)鍵字可以根據(jù)一個或多個字段對查詢結(jié)果進行分組,在分組的列上我們可以使用COUNT、MAX、MIN、SUM和AVG等函數(shù)。說明:(1)字段名:表示需要分組的字段名稱,多個字段時用逗號隔開。(2)分組除了使用字段名外,還可以是表達式。GROUPBY子句4、使用分組和匯總查詢數(shù)據(jù)語法格式:GROUPBY

<字段名>

按列名分組,單獨使用GROUPBY子句動手操作:從課程表lesson中統(tǒng)計課程類型4、使用分組和匯總查詢數(shù)據(jù)GROUP_CONCAT()GROUPBY子句動手操作:按照課程類型分組,顯示出每個分組的課程名稱4、使用分組和匯總查詢數(shù)據(jù)與COUNT()一起使用GROUPBY子句動手操作:從課程表lesson中統(tǒng)計各課程類型的課程數(shù)4、使用分組和匯總查詢數(shù)據(jù)按多列分組GROUPBY子句動手操作:從學生表student中統(tǒng)計各班級的男女生人數(shù)4、使用分組和匯總查詢數(shù)據(jù)與WITHROLLUP一起使用GROUPBY子句動手操作:從學生表student中統(tǒng)計軟件班的男女生人數(shù)、軟件各班人數(shù)和軟件班人數(shù),顯示班級號、性別、姓名和人數(shù)4、使用分組和匯總查詢數(shù)據(jù)可以使用

HAVING

關(guān)鍵字對分組后的數(shù)據(jù)進行過濾,HAVING

子句不能單獨使用,必須跟在GROUPBY子句后面使用。說明:(1)HAVING關(guān)鍵字和WHERE關(guān)鍵字都可以用來過濾數(shù)據(jù),且HAVING支持WHERE關(guān)鍵字中所有的操作符和語法。(2)因為WHERE子句比GROUPBY先執(zhí)行,而聚合函數(shù)必須在分完組之后才執(zhí)行,且分完組后必須使用HAVING子句進行結(jié)果集的過濾。HAVING子句4、使用分組和匯總查詢數(shù)據(jù)語法格式:HAVING<查詢條件>

比較運算HAVING子句動手操作:從成績表studing中統(tǒng)計每個學生的平均成績,顯示平均成績不低于90的學號、平均成績4、使用分組和匯總查詢數(shù)據(jù)比較Having與Where子句HAVING子句動手操作:從成績表studing中統(tǒng)計Le0003和Le0005課程的最高、最低成績4、使用分組和匯總查詢數(shù)據(jù)Having與Where子句一起使用HAVING子句動手操作:從學生表studing中統(tǒng)計湖南地區(qū)班級人數(shù)大于等于2人的班級號、人數(shù)4、使用分組和匯總查詢數(shù)據(jù)連接就是將一張表中的行按照某個條件(連接條件)和另一張表中的行連接起來形成一個新行的過程。在MySQL中,根據(jù)連接條件所使用的操作符,主要有相等連接(使用等號操作符)和不等連接(不使用等號操作符);根據(jù)連接查詢返回的結(jié)果,多表查詢主要有交叉連接、內(nèi)連接和外連接。連接概述5、使用連接查詢進行多表數(shù)據(jù)的檢索交叉連接(CROSSJOIN)沒有連接條件,表與表間的所有行連接。結(jié)果集中的總行數(shù)就是兩張表中總行數(shù)的乘積(笛卡爾積),一般用來返回連接表的笛卡爾積。說明:(1)字段名:需要查詢的字段名稱。(2)表1、表2:需要交叉連接的表名。(3)WHERE子句:用來設(shè)置交叉連接的查詢條件。(4)多個表交叉連接時,在FROM后連續(xù)使用CROSSJOIN或,即可。交叉連接5、使用連接查詢進行多表數(shù)據(jù)的檢索語法格式:SELECT<字段名>FROM<表1>CROSSJOIN<表2>[WHERE子句]

SELECT<字段名>FROM<表1>,<表2>[WHERE子句]CROSSJOIN交叉連接動手操作:使用交叉連接查詢班級表class和部門表department。5、使用連接查詢進行多表數(shù)據(jù)的檢索內(nèi)連接(INNERJOIN)只返回連接表中所有滿足連接條件的行。主要通過設(shè)置連接條件的方式,來移除查詢結(jié)果中某些數(shù)據(jù)行的交叉連接。說明:(1)字段名:需要查詢的字段名稱。(2)表1、表2:需要內(nèi)連接的表名,可以給表設(shè)置別名。(3)INNERJOIN:內(nèi)連接中可以省略INNER關(guān)鍵字,只用關(guān)鍵字JOIN。(4)ON子句:用來設(shè)置內(nèi)連接的連接條件。(5)USING:只能和JOIN一起使用,而且要求兩個關(guān)聯(lián)字段在關(guān)聯(lián)表中名稱一致,而且只能表示關(guān)聯(lián)字段值相等。(6)多個表內(nèi)連接時,在FROM后連續(xù)使用INNERJOIN或JOIN即可。內(nèi)連接5、使用連接查詢進行多表數(shù)據(jù)的檢索語法格式:SELECT<字段名>FROM<表1>INNERJOIN<表2>[ON子句|USING(字段名))]

INNERJOIN內(nèi)連接動手操作:使用內(nèi)連接查詢班級表class和部門表department,顯示班級號、班級名稱、班主任和所屬部門編號、部門名稱5、使用連接查詢進行多表數(shù)據(jù)的檢索INNERJOIN連接三張表內(nèi)連接動手操作:查詢“信息工程系”的學生的學號、姓名、性別、所在班級名稱5、使用連接查詢進行多表數(shù)據(jù)的檢索INNERJOIN與GROUPBY一起使用內(nèi)連接動手操作:查詢每門課程的課程號、任課教師姓名以及選課人數(shù)5、使用連接查詢進行多表數(shù)據(jù)的檢索INNERJOIN實現(xiàn)自連接內(nèi)連接動手操作:查詢與“李林”同班的學生的姓名5、使用連接查詢進行多表數(shù)據(jù)的檢索內(nèi)連接返回查詢結(jié)果集中僅包含滿足連接條件和查詢條件的行,而采用外連接時不僅返回滿足條件的結(jié)果,還會包含左表(左外連接)、右表(右外連接)或兩個表(全外連接)中的所有數(shù)據(jù)行。在MySQL數(shù)據(jù)庫中外連接分兩類:左外連接、右外連接。MySQL不支持全外連接。外連接5、使用連接查詢進行多表數(shù)據(jù)的檢索左外連接LEFTJOIN左外連接又稱為左連接,查詢的結(jié)果集包含左表中的所有行,如果左表中的某行在右表中沒有匹配的行,則在相關(guān)聯(lián)的結(jié)果集中右表的所有選擇列均為空值。說明:(1)字段名:需要查詢的字段名稱。(2)表1、表2:需要左連接的表名。(3)LEFTOUTERJOIN:左連接中可以省略O(shè)UTER關(guān)鍵字,只使用關(guān)鍵字LEFTJOIN。(4)ON子句:用來設(shè)置左連接的連接條件,不能省略。外連接5、使用連接查詢進行多表數(shù)據(jù)的檢索語法格式:SELECT<字段名>FROM<表1>LEFTOUTERJOIN<表2><ON子句>

左外連接LEFTJOIN外連接動手操作:查詢所有學生的成績情況5、使用連接查詢進行多表數(shù)據(jù)的檢索右外連接RIGHTJOIN右外連接又稱為右連接,查詢的結(jié)果集包含右表中的所有行,如果右表中的某行在左表中沒有匹配的行,則在相關(guān)聯(lián)的結(jié)果集中左表的所有選擇列均為空值。說明:(1)字段名:需要查詢的字段名稱。(2)表1、表2:需要右連接的表名。(3)RIGHTOUTERJOIN:右連接中可以省略O(shè)UTER關(guān)鍵字,只使用關(guān)鍵字RIGHTJOIN。(4)ON子句:用來設(shè)置右連接的連接條件,不能省略。外連接5、使用連接查詢進行多表數(shù)據(jù)的檢索語法格式:SELECT<字段名>FROM<表1>RIGHTOUTERJOIN<表2><ON子句>

右外連接RIGHTJOIN外連接動手操作:查詢所有課程的選修情況5、使用連接查詢進行多表數(shù)據(jù)的檢索全外連接全外連接,查詢結(jié)果除了包含滿足連接條件的記錄外,還包含兩個表中不滿足條件的記錄。當某行在另一個表中沒有匹配的行時,則另一個表中的選擇列均為空值。MySQL不支持全外連接,全外連接可以通過UNION組合實現(xiàn)。外連接5、使用連接查詢進行多表數(shù)據(jù)的檢索UNION運算符將兩個或更多查詢的結(jié)果組合起來,并生成一個結(jié)果集,其中包含來自UNION中參與查詢的提取行。說明:(1)SELECT...:SELECT列表必須在數(shù)量和對應(yīng)列的數(shù)據(jù)類型上保持一致。(2)ALL|DISTINCT:UNIONALL不去掉結(jié)果集中重復(fù)的行,UNIONDISTINCT會去掉結(jié)果集中的行,默認為UNIONDISTINCT。組合(UNION)5、使用連接查詢進行多表數(shù)據(jù)的檢索語法格式:SELECT...

UNION[ALL|DISTINCT]

SELECT...UNION組合(UNION)動手操作:查詢住“長沙”或者學號為“20211002”、“20211004”的學生的學號,姓名和性別5、使用連接查詢進行多表數(shù)據(jù)的檢索UNION實現(xiàn)全外連接組合(UNION)動手操作:查詢學生表和班級表的所有數(shù)據(jù)5、使用連接查詢進行多表數(shù)據(jù)的檢索子查詢是MySQL中比較常用的查詢方法,通過子查詢可以實現(xiàn)多表查詢。子查詢指將一個查詢語句嵌套在另一個查詢語句中。子查詢可以在SELECT、UPDATE和DELETE語句中使用,而且可以進行多層嵌套。單值和多值查詢(1)單值查詢?nèi)绻硬樵兎祷氐慕Y(jié)果是一個單一值,稱為單值查詢。單值查詢可以直接使用關(guān)系運算符將內(nèi)查詢和外查詢連接起來。(2)多值查詢?nèi)绻硬樵兎祷氐慕Y(jié)果為一組值,稱為多值查詢。多值查詢需要在子查詢前面使用ANY、ALL、IN、NOTIN等運算符。子查詢概述6、使用子查詢進行數(shù)據(jù)檢索、插入、更新和刪除相關(guān)與非相關(guān)子查詢(1)非相關(guān)子查詢非相關(guān)子查詢的執(zhí)行過程是從內(nèi)層向外層處理,即先處理最內(nèi)層的子查詢,但是查詢的結(jié)果是不會顯示出來的,而是傳遞給外層作為外層的條件,再執(zhí)行外部查詢,最后顯示出查詢結(jié)果。(2)相關(guān)子查詢相關(guān)子查詢的執(zhí)行過程是子查詢?yōu)橥獠坎樵兊拿恳恍袌?zhí)行一次,外部查詢將子查詢引用的外部字段的值傳給子查詢,進行子查詢操作;外部查詢根據(jù)子查詢得到的結(jié)果或結(jié)果集返回滿足條件的結(jié)果行。外部查詢的每一行都做相同處理。外部查詢每執(zhí)行一行,內(nèi)部查詢都要從頭執(zhí)行到尾。其類似于編程語言的嵌套循環(huán)。子查詢概述6、使用子查詢進行數(shù)據(jù)檢索、插入、更新和刪除在SELECT語句中,子查詢可以被嵌套在SELECT語句的列、表和查詢條件中,即SELECT子句,F(xiàn)ROM子句、

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論