




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、MySQL程序設(shè)計(jì)第4章 MySQL查詢(xún)4.1 基本查詢(xún)語(yǔ)法4.2 數(shù)據(jù)過(guò)濾4.3 子查詢(xún)4.4 聚合函數(shù)MySQL程序設(shè)計(jì)第4章 MySQL查詢(xún)4.5 高級(jí)查詢(xún)MySQL程序設(shè)計(jì) 查詢(xún)語(yǔ)法 MySQL查詢(xún)使用關(guān)鍵字SELECT來(lái)進(jìn)行查詢(xún),SELECT語(yǔ)句基本語(yǔ)法格式: SELECT 查詢(xún)內(nèi)容 FROM 表名 WHERE 表達(dá)式 GROUP BY 字段名 HAVING 表達(dá)式 ORDEY BY 字段名 LIMIT 記錄數(shù)4.1 基本查詢(xún)語(yǔ)法第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) 基本查詢(xún)過(guò)濾 基本查詢(xún)過(guò)濾是可以用來(lái)查詢(xún)所有字段數(shù)據(jù)或者指定一個(gè)字段或者多個(gè)字段的數(shù)據(jù)。4.2 數(shù)據(jù)過(guò)濾第4章 M
2、ySQL查詢(xún)MySQL程序設(shè)計(jì) 條件查詢(xún)過(guò)濾 條件查詢(xún)過(guò)濾關(guān)鍵字:AND、OR、IN、NOT IN、IS NULL、IS NOT NULL、BETWEEN AND;按關(guān)鍵字可以進(jìn)行條件查詢(xún)過(guò)濾。 (1)AND(與):用AND進(jìn)行查詢(xún)的時(shí)候,查詢(xún)出來(lái)的數(shù)據(jù)要求條件都得滿(mǎn)足; SELECT * FROM user WHERE age = 20 and name=kevin; (2)OR(或):用OR進(jìn)行查詢(xún)的時(shí)候,查詢(xún)出來(lái)的數(shù)據(jù)只要求滿(mǎn)足任意一個(gè)條件就可以查詢(xún)出來(lái); SELECT * FROM user WHERE age = 20 or name=kevin; (3)IN(在范圍內(nèi)):用IN進(jìn)行
3、查詢(xún)的時(shí)候,查詢(xún)出來(lái)的數(shù)據(jù)在這個(gè)范圍內(nèi); SELECT * FROM user WHERE id in (3,5,7);4.2 數(shù)據(jù)過(guò)濾第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) 條件查詢(xún)過(guò)濾 條件查詢(xún)過(guò)濾關(guān)鍵字:AND、OR、IN、NOT IN、IS NULL、IS NOT NULL、BETWEEN AND;按關(guān)鍵字可以進(jìn)行條件查詢(xún)過(guò)濾。 (4)NOT IN(不在范圍內(nèi)):用NOT IN進(jìn)行查詢(xún)的時(shí)候,查詢(xún)出來(lái)的數(shù)據(jù)不在這個(gè)范圍內(nèi); SELECT * FROM user WHERE id not in(3,5,7); (5)IS(為空):用IS NULL進(jìn)行查詢(xún)的時(shí)候,是用來(lái)查詢(xún)某字段為空時(shí)用
4、is null,而不能使用=null,因?yàn)閙ysql中的null不等于任何其他值,也不等于另外一個(gè)null,優(yōu)化器會(huì)把=null的查詢(xún)過(guò)濾掉而不返回任何數(shù)據(jù);查詢(xún)某字段為非空時(shí)使用is not null。 SELECT * FROM user WHERE name is null; (6)BETWEEN AND(在.區(qū)間):用BETWEEN AND進(jìn)行查詢(xún)的時(shí)候,查詢(xún)出來(lái)的數(shù)據(jù)是在這個(gè)區(qū)間; SELECT * FROM user WHERE age between 10 and 20;4.2 數(shù)據(jù)過(guò)濾第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) 模糊查詢(xún)過(guò)濾 模糊查詢(xún)過(guò)濾使用關(guān)鍵字LIKE進(jìn)行查詢(xún)
5、; (1)LIKE 張%:使用LIKE查詢(xún)?cè)撟侄我詮堥_(kāi)頭的數(shù)據(jù); SELECT * FROM user WHERE name like 張%; (2)LIKE %明:使用LIKE查詢(xún)?cè)撟侄我悦鹘Y(jié)尾的數(shù)據(jù); SELECT * FROM user WHERE name like %明; (3)LIKE %明%:使用LIKE查詢(xún)?cè)撟侄伟鞯臄?shù)據(jù); SELECT * FROM user WHERE name like %明%;4.2 數(shù)據(jù)過(guò)濾第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) 字段控制查詢(xún)過(guò)濾 字段控制查詢(xún)過(guò)濾可以使用DISTINCT去除重復(fù)過(guò)濾、AS設(shè)置別名。 (1)DISTINCT:去除重
6、復(fù)的列值; SELECT distinct age FROM user; (2)AS:可以設(shè)置列的別名、也可以省略AS來(lái)設(shè)置關(guān)鍵字; SELECT name as 姓名 FROM user; 或者 SELECT name 姓名 FROM user;4.2 數(shù)據(jù)過(guò)濾第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) 正則表達(dá)式查詢(xún)過(guò)濾4.2 數(shù)據(jù)過(guò)濾第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) 什么是子查詢(xún) 子查詢(xún)是一個(gè)父表達(dá)式調(diào)用另一個(gè)子表達(dá)式結(jié)果的查詢(xún)操作,子表達(dá)式結(jié)果傳遞給父表達(dá)式繼續(xù)處理,子查詢(xún)也被稱(chēng)作內(nèi)嵌查詢(xún)或者內(nèi)部查詢(xún)。4.3 子查詢(xún)第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) 按返回結(jié)果角度子查詢(xún)分
7、類(lèi) 分為4種:表子查詢(xún)、行子查詢(xún)、列子查詢(xún)、標(biāo)量子查詢(xún); (1)表子查詢(xún):返回的結(jié)果集是由多行(至少一行)數(shù)據(jù)組成,作為表子查詢(xún)要設(shè)置表的別名,常用于父查詢(xún)的FROM子句中; (2)行子查詢(xún):返回結(jié)果集是一行數(shù)據(jù)組成,一行數(shù)據(jù)庫(kù)里可以包含多列數(shù)據(jù),常用于父查詢(xún)的FROM子句中或者WHERE子句中; (3)列子查詢(xún):返回的結(jié)果集是由多行一列數(shù)據(jù)組成,可以使用 in、any和all操作符; (4)標(biāo)量子查詢(xún):返回的結(jié)果集是一個(gè)標(biāo)量集合,一行一列,也就是一個(gè)標(biāo)量值;每個(gè)標(biāo)量子查詢(xún)也是一個(gè)行子查詢(xún)和一個(gè)列子查詢(xún),反之則不是;每個(gè)行子查詢(xún)和列子查詢(xún)也是一個(gè)表子查詢(xún),反之也不是;4.3 子查詢(xún)第4章 My
8、SQL查詢(xún)MySQL程序設(shè)計(jì) 按返回結(jié)果調(diào)用方法角度子查詢(xún)分類(lèi) 分為3種:WHERE型子查詢(xún)、FROM型子查詢(xún)、exists型子查詢(xún); (1)WHERE型子查詢(xún):把內(nèi)層查詢(xún)的結(jié)果作為外層查詢(xún)的條件; (2)FROM型子查詢(xún):返回的結(jié)果集作為一個(gè)臨時(shí)表,臨時(shí)表要設(shè)置別名,然后從臨時(shí)表進(jìn)行查詢(xún); (3)exists型子查詢(xún):把外層查詢(xún)結(jié)果拿到內(nèi)層,看內(nèi)層的查詢(xún)是否成立,使用exists關(guān)鍵字時(shí),內(nèi)層查詢(xún)語(yǔ)句不返回查詢(xún)的記錄,而是返回一個(gè)真假值,如果內(nèi)層查詢(xún)語(yǔ)句查詢(xún)到滿(mǎn)足條件的記錄,只要子查詢(xún)中至少返回一個(gè)值,則exists語(yǔ)句的值就為true。就返回true,否則返回false。當(dāng)返回的值為tru
9、e時(shí),外層查詢(xún)語(yǔ)句將進(jìn)行查詢(xún),否則不進(jìn)行查詢(xún)。not exists剛好與之相反;4.3 子查詢(xún)第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) AVG()函數(shù) MySQL數(shù)據(jù)庫(kù)的AVG函數(shù)是用來(lái)計(jì)算某一列的平均值,比如可以用在平均分?jǐn)?shù)、平均薪資、平均年齡等等場(chǎng)景的使用。 SELECT avg(age) FROM user;4.4 聚合函數(shù)第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) COUNT()函數(shù) MySQL數(shù)據(jù)庫(kù)的COUNT()聚合函數(shù)是用來(lái)計(jì)算表中記錄的個(gè)數(shù)或者列中值的個(gè)數(shù),計(jì)算內(nèi)容由SELECT語(yǔ)句指定,例如要獲取user表中age 20 的個(gè)數(shù)。 SELECT count(*) FROM us
10、er WHERE age 20;4.4 聚合函數(shù)第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) MAX()/MIN()函數(shù) MySQL數(shù)據(jù)庫(kù)的MAX()聚合函數(shù)選取的數(shù)據(jù)中最大值,MIN()聚合函數(shù)選取的數(shù)據(jù)中最小值,比如可以獲取年齡的最大值或者最小值。 SELECT max(age) FROM user ; SELECT min(age) FROM user;4.4 聚合函數(shù)第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) SUM()函數(shù) MySQL數(shù)據(jù)庫(kù)的SUM()聚合函數(shù)用來(lái)計(jì)算滿(mǎn)足條件的某一列的總和,比如可以計(jì)算年齡的總和,或者可以計(jì)算男生年齡的總和,聚合函數(shù)都是可以進(jìn)行設(shè)置別名的。 SELECT
11、sum(age) FROM user ;4.4 聚合函數(shù)第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) 內(nèi)連接查詢(xún) 內(nèi)連接查詢(xún)分為等值連接查詢(xún)和非等值連接查詢(xún),它是使用關(guān)鍵字inner JOIN ON,inner關(guān)鍵字可以省略,它是從左表中取出每一條記錄,去與右表中所有的記錄進(jìn)行匹配,匹配成功后才會(huì)保留結(jié)果,否則不保留; SELECT * FROM 左表 INNER JOIN 右表 ON 左表.字段 = 右表.字段;4.5 高級(jí)查詢(xún)第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) 外連接查詢(xún) 外連接查詢(xún)分為左外連接查詢(xún)、右外連接查詢(xún),外連接查詢(xún)是以一張表為基礎(chǔ),取出里面的所有記錄,然后每條與另外一張表進(jìn)行連
12、接,不管能不能匹配上條件,最終都會(huì)保留,能匹配,正確保留,不能匹配其他表的字段都置空null,它是使用關(guān)鍵字outer JOIN ON進(jìn)行連接查詢(xún)。 SELECT * FROM 左表 LEFT/RIGHT JOIN 右表 ON 左表.字段 = 右表.字段;4.5 高級(jí)查詢(xún)第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) 自然連接查詢(xún) 自然連接查詢(xún)是在連接的兩個(gè)表中的列名稱(chēng)相等的時(shí)候才能使用,MySQL以同名字段作為字段進(jìn)行匹配,它使用關(guān)鍵字natural JOIN來(lái)進(jìn)行自然連接,這種連接很少使用,自然連接又可以分為自然內(nèi)連接和自然外連接。 SELECT * FROM左表 LEFT/ RIGHT INN
13、ER JOIN 右表 ON using(字段名) 自然內(nèi)連接示例:SELECT * FROM user NATURAL JOIN score; 自然左外連接示例:SELECT * FROM user NATURAL LEFT JOIN score; 自然右外連接示例:SELECT * FROM user NATURAL RIGHT JOIN score; 外連接模擬自然左外連接示例:SELECT * FROM user LEFT JOIN score using(id);4.5 高級(jí)查詢(xún)第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) 交叉連接查詢(xún) 交叉連接查詢(xún)是從一張表中循環(huán)取出每一條記錄, 然后每
14、條記錄都去另外一張表進(jìn)行匹配,匹配的結(jié)果都保留, 而連接本身字段就會(huì)增加,最終形成的結(jié)果叫做笛卡爾積,它是使用關(guān)鍵字CROSS JOIN來(lái)進(jìn)行交叉連接查詢(xún),很少會(huì)使用這個(gè)交叉連接查詢(xún)。 SELECT * 左表 CROSS JOIN 右表 或 FROM 左表,右表;4.5 高級(jí)查詢(xún)第4章 MySQL查詢(xún)MySQL程序設(shè)計(jì) 聯(lián)合查詢(xún) 聯(lián)合查詢(xún)是將多次查詢(xún)結(jié)果合并起來(lái)進(jìn)行拼接,字段不會(huì)增加,要求兩次查詢(xún)的列數(shù)必須一致,列的類(lèi)型可以不一樣,多次sql語(yǔ)句取出的列名可以不一致,此時(shí)以第一個(gè)sql語(yǔ)句的列名為準(zhǔn);使用關(guān)鍵字UNION進(jìn)行聯(lián)合查詢(xún),會(huì)去掉重復(fù)的行,使用關(guān)鍵字UNION all進(jìn)行聯(lián)合查詢(xún),不會(huì)去掉重復(fù)的行;ORDEY BY不能直接使用,需要對(duì)查詢(xún)語(yǔ)句使用括號(hào)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物醫(yī)藥產(chǎn)業(yè)發(fā)展藍(lán)皮書(shū)
- 商業(yè)保理融資居間合同
- 三農(nóng)產(chǎn)業(yè)數(shù)字化轉(zhuǎn)型方案
- 可行性分析報(bào)告怎么寫(xiě)
- 項(xiàng)目進(jìn)展會(huì)議記錄
- 醫(yī)院應(yīng)急預(yù)案評(píng)估手冊(cè)
- 電動(dòng)車(chē)充電樁數(shù)量
- 物流倉(cāng)儲(chǔ)設(shè)施規(guī)劃與布局方案
- 涂料生產(chǎn)與涂裝作業(yè)指導(dǎo)書(shū)
- 商業(yè)太陽(yáng)能光伏發(fā)電
- DBJ51-T 193-2022 四川省金屬與石材幕墻工程技術(shù)標(biāo)準(zhǔn)
- 叉車(chē)-復(fù)審證明
- 機(jī)關(guān)事業(yè)單位電話(huà)記錄本(來(lái)電)模板
- 工程概算表【模板】
- 鋼絞線(xiàn)力學(xué)性能試驗(yàn)檢測(cè)報(bào)告
- 導(dǎo)游英語(yǔ)課程教學(xué)大綱
- 第四章邊界層理論基礎(chǔ)合肥工業(yè)大學(xué)傳遞過(guò)程基礎(chǔ)
- E4A使用手冊(cè)(DOC)
- 社會(huì)救助內(nèi)容和工作職責(zé)
- ISO9001_2016年[全套]質(zhì)量管理體系文件
- 正泰電器低壓電器選型手冊(cè)
評(píng)論
0/150
提交評(píng)論