




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
使用SQL語(yǔ)句1/47本章任務(wù)向表中添加數(shù)據(jù)修改和刪除表中的數(shù)據(jù)使用查詢語(yǔ)句實(shí)現(xiàn)業(yè)務(wù)功能2/47本章目標(biāo)掌握數(shù)據(jù)表的增、刪、改掌握數(shù)據(jù)記錄的基本查詢掌握復(fù)雜數(shù)據(jù)查詢3/47通常情況下,向數(shù)據(jù)表中添加的新記錄應(yīng)該包含表的所有字段,即為該表中的所有字段添加數(shù)據(jù),為表中所有字段添加數(shù)據(jù)的INSERT語(yǔ)句有兩種:添加數(shù)據(jù)INSERT語(yǔ)句中指定所有字段名INSERTINTO表名(字段名1,字段名2,……)VALUES(值1,值2,……);INSERT語(yǔ)句中不指定字段名INSERTINTO表名VALUES(值1,值2,……);表示數(shù)據(jù)表中的字段名稱,此處必須列出表所有字段的名稱表示每個(gè)字段的值:每個(gè)值的順序、類型必須與對(duì)應(yīng)的字段相匹配用于指定要添加的數(shù)據(jù)。需要注意的是,由于INSERT語(yǔ)句中沒(méi)有指定字段名,添加的值的順序必須和字段在表中定義的順序相同。演示demo1:向表中插入一條數(shù)據(jù)4/47添加數(shù)據(jù)MySQL中,也可以在INSERT語(yǔ)句中只向部分字段中添加值INSERTINTO表名(字段1,字段2,…)VALUES(值1,值2,…)表示數(shù)據(jù)表中的字段名稱,此次只指定表中部分字段的名稱表示指定字段的值,每個(gè)值的順序、類型必須與對(duì)應(yīng)的字段相匹配接下來(lái)通過(guò)三個(gè)案例來(lái)實(shí)際操作如何為表的指定字段添加數(shù)據(jù),如例3-4,例3-5,和例3-6所示。5/47添加數(shù)據(jù)有時(shí),需要一次向表中添加多條記錄。為此,在MySQL中提供了使用一條INSERT語(yǔ)句同時(shí)添加多條記錄的功能演示demo2:向表中插入多條數(shù)據(jù)INSERTINTO表名[(字段名1,字段名2,……)]VALUES(值1,值2,……),(值1,值2,……),……(值1,值2,……);6/47更新數(shù)據(jù)更新數(shù)據(jù)是指對(duì)表中存在的記錄進(jìn)行修改,比如某個(gè)學(xué)生改了名字,就需要對(duì)其記錄信息中的name字段值進(jìn)行修改。MySQL中使用UPDATE語(yǔ)句來(lái)更新表中的記錄:UPDATE表名 SET字段名1=值1[,字段名2=值2,……] [WHERE條件表達(dá)式]更新表中的某一條或者某幾條記錄,需要使用WHERE子句來(lái)指定更新記錄的條件.如果沒(méi)有使用WHERE子句,則會(huì)將表中所有記錄的指定字段都進(jìn)行更新.指定更新數(shù)據(jù)需要滿足的條件演示demo3:更新表中的數(shù)據(jù)7/47刪除數(shù)據(jù)假如一個(gè)學(xué)生轉(zhuǎn)學(xué)了,就需要在student表中將其信息記錄刪除。MySQL中使用DELETE語(yǔ)句來(lái)刪除表中的記錄DELETEFROM表名[WHERE條件表達(dá)式]根據(jù)指定條件刪除表中的某一條或者某幾條記錄,需要使用WHERE子句來(lái)指定刪除記錄的條件。在DELETE語(yǔ)句中如果沒(méi)有使用WHERE子句,則會(huì)將表中的所有記錄都刪除,。演示demo4:刪除表中的數(shù)據(jù)8/47刪除數(shù)據(jù)在MySQL數(shù)據(jù)庫(kù)中,還有一種方式可以用來(lái)刪除表中所有的記錄,這種方式需要用到一個(gè)關(guān)鍵字TRUNCATETRUNCATE[TABLE]表名TRUNCATE的語(yǔ)法格式很簡(jiǎn)單,只需要通過(guò)“表名”指定要執(zhí)行刪除操作的表即可。例:TRUNCATETABLEstudent;--刪除student表中的所有數(shù)據(jù)9/47使用DELETE語(yǔ)句時(shí),每刪除一條記錄都會(huì)在日志中記錄,而使用TRUNCATE語(yǔ)句時(shí),不會(huì)在日志中記錄刪除的內(nèi)容,因此TRUNCATE語(yǔ)句的執(zhí)行效率比DELETE語(yǔ)句高。刪除數(shù)據(jù)TRUNCATE語(yǔ)句和DETELE語(yǔ)句都能實(shí)現(xiàn)刪除表中的所有數(shù)據(jù)的功能,但兩者有一定的區(qū)別,具體如下:DELETE語(yǔ)句是DML語(yǔ)句,TRUNCATE語(yǔ)句通常被認(rèn)為是DDL語(yǔ)句DELETE語(yǔ)句后面可以跟WHERE子句,通過(guò)指定WHERE子句中的條件表達(dá)式只刪除滿足條件的部分記錄,而TRUNCATE語(yǔ)句只能用于刪除表中的所有記錄使用TRUNCATE語(yǔ)句刪除表中的數(shù)據(jù),再向表中添加記錄時(shí),自動(dòng)增加字段的默認(rèn)初始值重新由1開始,使用DELETE語(yǔ)句刪除表中所有記錄,再向表中添加記錄時(shí),自動(dòng)增加字段的值為刪除時(shí)該字段的最大值加1.10/47訓(xùn)練要點(diǎn)掌握數(shù)據(jù)的增加、刪除和修改需求說(shuō)明向user表中添加如圖所示的數(shù)據(jù).將user表中uName為“李莎”的用戶密碼uPwd重置為“888”。刪除users表中uID為4的記錄。刪除users表所有記錄.(使用truncatetable)向GoodsType表中添加新的商品類別,類別名稱為“樂(lè)器”。向Goods表中添加新的商品,類別為“樂(lè)器”,商品編號(hào)為“099”,商品名稱為“紫竹洞簫”,價(jià)格為“288”,數(shù)量為10,城市為“浙江”。修改Goods表中商品編號(hào)為“099”的商品銷售量為5。刪除Goods表中商品名稱為“紫竹洞簫”的商品。講解需求說(shuō)明學(xué)員操作1—數(shù)據(jù)表中數(shù)據(jù)的操作11/47簡(jiǎn)單查詢MySQL從數(shù)據(jù)表中查詢數(shù)據(jù)的基本語(yǔ)句是SELECT語(yǔ)句。SELECT[DISTINCT]*|{字段名1,字段名2,字段名3,……}FROM表名 [WHERE條件表達(dá)式1] [GROUPBY字段名[HAVING條件表達(dá)式2]] [ORDERBY字段名[ASC|DESC]] [LIMIT[OFFSET]記錄數(shù)]“字段1,字段2…”表示從表中查詢的指定字段,星號(hào)(“*”)通配符表示表中所有字段,兩者為互斥關(guān)系,任選其一。“DISTINCT”是可選參數(shù),用于剔除查詢結(jié)果中重復(fù)的數(shù)據(jù)表示從指定的表中查詢數(shù)據(jù)“WHERE”是可選參數(shù),用于指定查詢條件“GROUPBY”是可選參數(shù),用于將查詢結(jié)果按照指定字段進(jìn)行分組,“HAVING”也是可選參數(shù),用于對(duì)分組后的結(jié)果進(jìn)行過(guò)濾。“ORDERBY”是可選參數(shù),用于將查詢結(jié)果按照指定字段進(jìn)行排序。排序方式由參數(shù)ASC或DESC控制,其中ASC表示按升序進(jìn)行排列,DESC表示按降序進(jìn)行排列。如果不指定參數(shù),默認(rèn)為升序排列。“LIMIT”是可選參數(shù),用于限制查詢結(jié)果的數(shù)量。LIMIT后面可以跟2個(gè)參數(shù),第一個(gè)參數(shù)“OFFSET”表示偏移量,如果偏移量為0則從查詢結(jié)果的第一條記錄開始…以此類推。如果不指定OFFSET,其默認(rèn)值為0。第二個(gè)參數(shù)“記錄數(shù)”表示返回查詢記錄的條數(shù)。12/47簡(jiǎn)單查詢
查詢所有字段是指查詢表中所有字段的數(shù)據(jù),MySQL中有兩種方式可以查詢表中所有字段:指定所有字段列出所有字段名查詢數(shù)據(jù)的語(yǔ)法格式如下所示:1SELECT字段名1,字段名2,……FROM表名;使用星號(hào)(“*”)通配符代替所有字段使用星號(hào)(“*”)通配符查詢數(shù)據(jù)的語(yǔ)法格式如下所示:2SELECT*FROM表名;演示demo5:簡(jiǎn)單查詢數(shù)據(jù)13/47
數(shù)據(jù)庫(kù)中包含大量的數(shù)據(jù),當(dāng)我們需要根據(jù)需求獲取指定的數(shù)據(jù),或者對(duì)查詢的數(shù)據(jù)重新進(jìn)行排列組合時(shí),就要在SELECT語(yǔ)句中指定查詢條件對(duì)查詢結(jié)果進(jìn)行過(guò)濾。SELECT語(yǔ)句中最常見的是使用WHERE子句指定查詢條件,帶有WHERE子句的查詢有八種,逐一介紹:按條件查詢14/47按條件查詢SELECT字段名1,字段名2,……FROM表名WHERE條件表達(dá)式1、帶關(guān)系運(yùn)算符的查詢—對(duì)數(shù)據(jù)進(jìn)行過(guò)濾
語(yǔ)法格式如下所示:15/47按條件查詢
接下來(lái)以“=”、“>”關(guān)系運(yùn)算符為例,將它們作為查詢條件對(duì)數(shù)據(jù)進(jìn)行過(guò)濾(1)查詢student表中id為10004的學(xué)生姓名。(2)使用SELECT語(yǔ)句查詢name為“小喬”的學(xué)生性別。(3)查詢student表中sJava大于80的學(xué)生姓名。演示demo6:帶關(guān)系運(yùn)算符的數(shù)據(jù)查詢16/47按條件查詢2、帶IN關(guān)鍵字的查詢語(yǔ)法格式如下:SELECT*|字段名1,字段名2,……FROM表名WHERE字段名[NOT]IN(元素1,元素2,……)17/47按條件查詢3、帶BETWEENAND關(guān)鍵字的查詢—判斷某個(gè)字段的值是否在指定的范圍之內(nèi)SELECT*|{字段名1,字段名2,……}FROM表名WHERE字段名[NOT]BETWEEN值1AND值2案例查詢student表中id值在10002和10005之間的學(xué)生姓名。查詢student表中id值不在10002和10005之間的學(xué)生姓名。語(yǔ)法格式如下所示:演示demo7:帶between…and的數(shù)據(jù)查詢18/47按條件查詢SELECT*|字段名1,字段名2,……FROM表名WHERE字段名IS[NOT]NULL查詢student表中sHtml為空值的記錄。查詢student表中sHtml不為空值的記錄。演示demo8:帶空值的數(shù)據(jù)查詢4、空值查詢—判斷某些列是否有NULL19/47按條件查詢5、帶DISTINCT關(guān)鍵字的查詢—去重復(fù)
語(yǔ)法格式如下:案例查詢student表中sHtml字段的值,查詢記錄不能重復(fù)。SELECTDISTINCT字段名FROM表名;演示demo9:帶DISTINCT的數(shù)據(jù)查詢20/47按條件查詢6、帶LIKE關(guān)鍵字的查詢—判斷兩個(gè)字符串是否相匹配語(yǔ)法格式如下所示:SELECT*|{字段名1,字段名2,……}FROM表名WHERE字段名[NOT]LIKE'匹配字符串';21/47按條件查詢LIKE語(yǔ)法格式中的“匹配字符串”指定用來(lái)匹配的字符串,其值可以是一個(gè)普通字符串,也可以是包含百分號(hào)(%)和下劃線(_)的通配字符串。
百分號(hào)和下劃線統(tǒng)稱為通配符,它們?cè)谕ㄅ渥址杏刑厥夂x。百分號(hào)(%)通配符可以匹配任意長(zhǎng)度的字符串,包括空字符串下劃線(_)通配符下劃線通配符只匹配單個(gè)字符,如果要匹配多個(gè)字符,需要使用多個(gè)下劃線通配符。演示demo10:帶LIKE的數(shù)據(jù)查詢22/47按條件查詢SELECT*|{字段名1,字段名2,……}FROM表名WHERE條件表達(dá)式1[……AND條件表達(dá)式n];演示demo11:帶and的數(shù)據(jù)查詢7、帶AND關(guān)鍵字的多條件查詢連接兩個(gè)或者多個(gè)查詢條件23/47按條件查詢SELECT*|{字段名1,字段名2,……}FROM表名WHERE條件表達(dá)式1OR[……OR條件表達(dá)式n];演示demo12:帶or的數(shù)據(jù)查詢8、帶OR關(guān)鍵字的多條件查詢—記錄滿足任意一個(gè)條件即被查出24/47多學(xué)一招OR和AND關(guān)鍵字一起使用的情況AND的優(yōu)先級(jí)高于OR,因此當(dāng)兩者在一起使用時(shí),應(yīng)該先運(yùn)算AND兩邊的條件表達(dá)式,再運(yùn)算OR兩邊的條件表達(dá)式。25/47訓(xùn)練要點(diǎn)掌握數(shù)據(jù)的基礎(chǔ)查詢需求說(shuō)明(1)查詢所有的用戶信息。(2)查詢商品信息,列出商品的編號(hào)、名稱、價(jià)格、銷量、圖像。(3)查詢Goods表中g(shù)dPrice不大于50的商品名稱。(4)查詢Goods表中g(shù)dCity值為“長(zhǎng)沙或“西安”,且gdPrice小于等于50的商品名稱。(5)查詢Goods表中g(shù)dPrice在100到500元的商品名稱。(6)查詢Goods表中g(shù)dCity為長(zhǎng)沙、西安、上海三個(gè)城市的商品名稱。(7)查詢Users表中g(shù)dName第2個(gè)字為“湘”的用戶姓名、性別和手機(jī)號(hào)。(8)查詢Users表中uImage為空的用戶姓名和性別。(9)查詢Goods表中g(shù)dPrice大于200的商品來(lái)源哪些城市。講解需求說(shuō)明學(xué)員操作2—查詢數(shù)據(jù)26/47常見問(wèn)題及解決辦法代碼規(guī)范問(wèn)題調(diào)試技巧共性問(wèn)題集中講解共性問(wèn)題集中講解27/47高級(jí)查詢MySQL中提供了聚合函數(shù)來(lái)實(shí)現(xiàn)對(duì)某些數(shù)據(jù)進(jìn)行統(tǒng)計(jì)COUNT()函數(shù)用來(lái)統(tǒng)計(jì)記錄的條數(shù),其語(yǔ)法格式如下所示:SELECTCOUNT(*)FROM表名使用上面的語(yǔ)法格式可以求出表中有多少條記錄。SUM()是求和函數(shù),用于求出表中某個(gè)字段所有值的總和,其語(yǔ)法格式如下:SELECTSUM(字段名)FROM表名;使用上面的語(yǔ)句可以求出指定字段值的總和。AVG()函數(shù)用于求出某個(gè)字段所有值的平均值,其語(yǔ)法格式如下所示:SELECTAVG(字段名)FROMstudent;使用上面的語(yǔ)句可以求出指定字段所有值的平均值。MAX()函數(shù)是求最大值的函數(shù),用于求出某個(gè)字段的最大值,其語(yǔ)法格式如下所示:SELECTMAX(grade)FROMstudent;MIN()函數(shù)是求最小值的函數(shù),用于求出某個(gè)字段的最小值,其語(yǔ)法格式如下所示:SELECTMIN(grade)FROMstudent;演示demo13:聚合函數(shù)的使用28/47高級(jí)查詢使用ORDERBY對(duì)查詢結(jié)果進(jìn)行排序
其語(yǔ)法格式如下所示:SELECT字段名1,字段名2,……FROM表名ORDERBY字段名1[ASC|DESC],字段名2[ASC|DESC]……【注意】需要注意的是,在按照指定字段進(jìn)行升序排列時(shí),如果某條記錄的字段值為NULL,則這條記錄會(huì)在第一條顯示,這是因?yàn)镹ULL值可以被認(rèn)為是最小值演示demo14:order
by子句的使用29/47使用GROUPBY對(duì)字段值進(jìn)行分組查詢其語(yǔ)法格式如下:
高級(jí)查詢SELECT字段名1,字段名2,……FROM表名GROUPBY字段名1,字段名2,……[HAVING條件表達(dá)式];演示demo15:group
by子句的使用30/47高級(jí)查詢單獨(dú)使用GROUPBYGROUPBY和聚合函數(shù)一起使用GROUPBY和HAVING一起使用單獨(dú)使用groupby關(guān)鍵字,查詢的是每個(gè)分組中的一條記錄。HAVING和WHERE都用于設(shè)置條件對(duì)查詢結(jié)果進(jìn)行過(guò)濾。兩者區(qū)別在于HAVING后可以跟聚合函數(shù),而WHERE不能。GROUPBY和聚合函數(shù)一起使用,可以統(tǒng)計(jì)出某個(gè)或者某些字段在一個(gè)分組中的最大值、最小值、平均值等等。分組查詢的三種使用情況31/47使用LIMIT限制查詢結(jié)果的數(shù)量其語(yǔ)法格式如下所示:高級(jí)查詢
SELECT字段名1,字段名2,……FROM表名LIMIT[OFFSET,]記錄數(shù)
LIMIT:后面可以跟2個(gè)參數(shù),“OFFSET”:為可選值,表示偏移量,如果偏移量為0則從查詢結(jié)果的第一條記錄開始…以此類推,如果不指定其默認(rèn)值為0。“記錄數(shù)”:表示返回查詢記錄的條數(shù)。演示demo16:LIMIT子句的使用32/47連接查詢交叉連接交叉連接返回的結(jié)果是被連接的兩個(gè)表中所有數(shù)據(jù)行的笛卡爾積即行數(shù)的乘積。其語(yǔ)法如下:SELECT*from表1CROSSJOIN表2;【注意】需要注意的是,在實(shí)際開發(fā)中這種業(yè)務(wù)需求是很少見,一般不會(huì)使用交叉連接,而是使用具體的條件對(duì)數(shù)據(jù)進(jìn)行有目的的查詢。33/47連接查詢內(nèi)連接內(nèi)連接(INNERJOIN)又稱簡(jiǎn)單連接或自然連接,內(nèi)連接使用比較運(yùn)算符對(duì)兩個(gè)表中的數(shù)據(jù)進(jìn)行比較,列出與連接條件匹配的數(shù)據(jù)行,組合成新的記錄。其語(yǔ)法如下:SELECT查詢字段FROM表1INNERJOIN表2ON表1.關(guān)系字段=表2.關(guān)系字段INNERJOIN表3ON表1.關(guān)系字段=表3.關(guān)系字段3表聯(lián)查SELECT查詢字段FROM表1INNERJOIN表2ON表1.關(guān)系字段=表2.關(guān)系字段2表聯(lián)查演示demo18:
內(nèi)連接查詢34/47
左連接的結(jié)果包括LEFTJOIN子句中指定的左表的所有記錄,和所有滿足連接條件的記錄。如果左表的某條記錄在右表中不存在,則在右表中顯示為空。連接查詢其語(yǔ)法如下:SELECT所查字段FROM表1LEFT|RIGHT[OUTER]JOIN表2ON表1.關(guān)系字段=表2.關(guān)系字段WHERE條件外連接演示demo19:外連接查詢左外鏈接右連接與左連接正好相反,返回右表中所有指定的記錄和所有滿足連接條件的記錄。如果右表的某條記錄在左表中沒(méi)有匹配,則左表將返回空值。右外鏈接35/47子查詢定義在查詢條件中,可以使用另一個(gè)查詢的結(jié)果作為查詢條件一部分的查詢稱為子查詢。子查詢是一種SELECT語(yǔ)句的使用方法,它嵌套在SELECT、INSERT、UPDATE、DELETE語(yǔ)句或其他的子查詢語(yǔ)句中,用來(lái)表示復(fù)雜的查詢。子查詢的執(zhí)行過(guò)程首先執(zhí)行子查詢中的語(yǔ)句,并將返回的結(jié)果作為外層查詢的過(guò)濾條件,然后再執(zhí)行外部查詢。在子查詢中通常要使用比較運(yùn)算符、IN、ANY及EXISTS等關(guān)鍵字。36/47子查詢作為表達(dá)式使用比較運(yùn)算符的子查詢當(dāng)子查詢的結(jié)果返回為單個(gè)值時(shí),通常可以用比較運(yùn)算符為外層查詢提供比較操作。語(yǔ)法格式如下。WH
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)習(xí)網(wǎng)絡(luò)技術(shù)的正確方式試題及答案
- 計(jì)算機(jī)二級(jí)MySQL語(yǔ)言應(yīng)用規(guī)范試題及答案
- 后勤裝備運(yùn)行管理制度
- 公司往來(lái)文件管理制度
- 宿舍天臺(tái)物資管理制度
- 培訓(xùn)基地門禁管理制度
- 公司注冊(cè)商標(biāo)管理制度
- 小區(qū)物業(yè)車庫(kù)管理制度
- 出租工位平臺(tái)管理制度
- 員工待崗輪休管理制度
- 快手信息流廣告優(yōu)化師(初級(jí))認(rèn)證考試題庫(kù)(附答案)
- 2023-2024年外賣騎手行業(yè)現(xiàn)狀及發(fā)展趨勢(shì)研究報(bào)告
- 染料敏化太陽(yáng)能電池材料課件
- 建工集團(tuán)全資子公司負(fù)責(zé)人年度經(jīng)營(yíng)業(yè)績(jī)考核辦法
- 2025年湖北省武漢市高考數(shù)學(xué)模擬試卷(附答案解析)
- 融匯畫方網(wǎng)絡(luò)準(zhǔn)入設(shè)備技術(shù)白皮書
- 道口抓拍系統(tǒng)施工方案
- 三星堆-巴蜀與青銅文化的見證
- 人工智能導(dǎo)論(天津大學(xué))知到智慧樹章節(jié)答案
- 詳盡的施工方案
- DB3305T 323-2024政府儲(chǔ)備糧綠色倉(cāng)儲(chǔ)技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論