MySQL——MySQL的数据查询功能
MySQL的數(shù)據(jù)查詢功能
SQL查詢的7個(gè)關(guān)鍵詞——以鏈家二手房數(shù)據(jù)為例
在實(shí)際工作中,使用最多的就是數(shù)據(jù)庫(kù)的查詢功能了。在數(shù)據(jù)查詢過(guò)程中,通常會(huì)用到以下7個(gè)核心關(guān)鍵詞:
SELECT <select_list> FROM <table_list> [WHERE <where_condition>] [GROUP BY <group_by_list>] [HAVING <having_condition>] [ORDER BY <order_by_list> ASC|DESC] [LIMIT <limit_number>]其中,SELECT和FROM兩個(gè)關(guān)鍵詞是必選項(xiàng),也就是說(shuō),只要是數(shù)據(jù)查詢功能,都需要使用這兩個(gè)關(guān)鍵詞,其他的5個(gè)關(guān)鍵詞,可以根據(jù)查詢的實(shí)際情況有針對(duì)性的選擇和使用。
(1) SELECT
主要作用就是告訴數(shù)據(jù)庫(kù),在提取數(shù)據(jù)時(shí)需要選擇的字段名稱。這里的字段名稱可以是數(shù)據(jù)表中已經(jīng)有的名稱,也可以是依據(jù)已有名稱衍生出來(lái)的名稱。需要注意的是如果要查看表中所有數(shù)據(jù),只需要在SELECT后面直接寫(xiě)一個(gè)星號(hào)(*)即可;如果需要提取多個(gè)字段,在SELECT關(guān)鍵詞后面逐一寫(xiě)出字段名稱,并且字段名稱之間需要用逗號(hào)(英文狀態(tài)下)隔開(kāi)。
(2) FROM
主要作用就是告訴數(shù)據(jù)庫(kù),在提取數(shù)據(jù)時(shí)需要選擇的數(shù)據(jù)源(也就是表)名稱。
通常來(lái)說(shuō)SELECT和FROM兩個(gè)關(guān)鍵詞都是一起使用的。
(3) WHERE
主要作用就是限定數(shù)據(jù)查詢的條件,也就是實(shí)現(xiàn)數(shù)據(jù)子集的提取。通常情況下,查詢條件可以包含算術(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、區(qū)間運(yùn)算符和通配符。
# 選擇指定的數(shù)據(jù)庫(kù) use test; # 查看鏈家二手房所有數(shù)據(jù) select * from sec_buildings; # 查看鏈家二手房的小區(qū)名稱、戶型、面積、單價(jià)和總價(jià); select fname,ftype,size,price_unit,tot_amt from sec_buildings; # 查看鏈家二手房的平均單價(jià)和平均總價(jià) select avg(price_unit),avg(tot_amt) from sec_buildings;# 1.查詢所有兩室一廳的二手房信息 select * from sec_buildings where ftype="2室1廳"; # 2.查詢2014年建的浦東、靜安、閔行的二手房信息 select * from sec_buildings where built_date="2014年建" and region in ("浦東","靜安","閔行"); # 3.查詢閔行區(qū)房?jī)r(jià)在1000萬(wàn)以上的二手房名稱、戶型、面積、朝向和樓層 select fname,ftype,size,direction,floor from sec_buildings where region="閔行" and tot_amt>1000; # 4.查詢浦東新區(qū)面積在60-70平米的二手房名稱、戶型、面積和總價(jià) select fname,ftype,size,tot_amt from sec_buildings where region="浦東" and size between 60 and 70; #前后都包含 # 5.查詢浦東新區(qū)所有陽(yáng)臺(tái)朝南或者朝南北的二手房信息 select * from sec_buildings where region="浦東" and (direction="朝南" or direction="朝南北"); select * from sec_buildings where region="浦東" and direction in("朝南","朝南北"); #運(yùn)算優(yōu)先級(jí) not and or # 6.查詢浦東新區(qū)陽(yáng)臺(tái)不是朝南的二手房信息 select * from sec_buildings where region="浦東" and direction!="朝南"; select * from sec_buildings where region = "浦東" and not direction="朝南"; # 7.查詢小區(qū)名稱中包含“新天地”字樣的二手房信息 select * from sec_buildings where fname like "%新天地%";(4)GROUP BY
主要用于統(tǒng)計(jì)時(shí)的分組操作,通常和聚合函數(shù)一起搭配使用。在SQL語(yǔ)法中,可以使用的聚合函數(shù)主要有以下5種:
group by 應(yīng)用實(shí)例:
# 1.查詢各個(gè)行政區(qū)域下二手房的數(shù)量、總的可居住面積、平均總價(jià)格、最大總價(jià)格和最小單價(jià) select region,count(*) as counts,sum(size) as tot_size,avg(tot_amt) as avg_amt, max(tot_amt) as max_amt,min(price_unit) as min_price from sec_buildings group by region;需要注意的是,如果對(duì)多個(gè)字段進(jìn)行分組統(tǒng)計(jì),那么需要將所有字段都寫(xiě)到關(guān)鍵詞group by后面,并以逗號(hào)(英文狀態(tài)下)隔開(kāi)。
# 2.查詢各個(gè)行政區(qū)域下每年二手房的數(shù)量、總的可居住面積、平均總價(jià)格、最大總價(jià)格和最小單價(jià) select region,built_date,count(*) as counts,sum(size) as tot_size,avg(tot_amt) as avg_amt, max(tot_amt) as max_amt,min(price_unit) as min_price from sec_buildings group by region,built_date;這里嘗試用SQL計(jì)算RFM模型中的R、F、M值。這里將Excel RFM案例中的order數(shù)據(jù)集導(dǎo)入到MySQL中,需要注意的是導(dǎo)入之前,需要對(duì)數(shù)據(jù)集做一些處理,否則導(dǎo)不成功:
- 1.將數(shù)據(jù)集中所有中文列名改成英文
- 2.將數(shù)據(jù)存儲(chǔ)方式改成csv
- 3.將數(shù)據(jù)編碼方式改成utf-8
MySQL中所有函數(shù):https://www.runoob.com/mysql/mysql-functions.html
(5)HAVING
having關(guān)鍵詞與where關(guān)鍵詞的作用有一些相似
我們繼續(xù)看鏈家二手房數(shù)據(jù),現(xiàn)在的要求是按照地區(qū)、戶型、樓層和陽(yáng)臺(tái)朝向分組統(tǒng)計(jì)靜安區(qū)和浦東區(qū)二手房的平均單價(jià)和總數(shù)量,并篩選出平均單價(jià)超過(guò)100000元的記錄:
(6)ORDER BY
用于查詢結(jié)果的排序,排序過(guò)程中可以按照某個(gè)或者某些字段進(jìn)行升序或者降序的排列。默認(rèn)是按照升序方式排序,如果需要降序排列的話,需要在字段后面跟上一個(gè)關(guān)鍵詞DESC。
# 按面積降序、總價(jià)升序的方式查詢出所有2室1廳的二手房信息 select * from sec_buildings where ftype = "2室1廳" order by size desc,tot_amt; select * from sec_buildings where ftype = "2室1廳" order by tot_amt,size desc;體會(huì)一下上面兩個(gè)查詢結(jié)果。
需要注意的是order by關(guān)鍵詞后面的字段的順序是有意義的,排在前面的優(yōu)先級(jí)就比后面的要高。
(7)LIMIT
用于限定查詢返回的記錄行數(shù),可以選擇返回前幾行,中間幾行或者是末尾幾行。需要注意的是這個(gè)關(guān)鍵詞后面最多可以寫(xiě)兩個(gè)整數(shù)型的值:
LIMIT n:表示返回查詢結(jié)果的前n行
LIMIT m,n:表示從第m+1行開(kāi)始,連續(xù)返回n行的數(shù)據(jù)
以上,就是查詢中常用的7個(gè)關(guān)鍵詞,同時(shí)也是數(shù)據(jù)提取時(shí)要用到的最基本的關(guān)鍵詞,同學(xué)們一定要掌握每個(gè)關(guān)鍵詞的作用和語(yǔ)法。
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的MySQL——MySQL的数据查询功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MySQL——外部数据的批量导入
- 下一篇: MySQL——基于CASE WHEN的常