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