日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL——MySQL的数据查询功能

發布時間:2025/4/5 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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兩個關鍵詞都是一起使用的。

# 選擇指定的數據庫 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;

(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種:

select * from fruits;select count(*) from fruits; select count(f_name) from fruits; select count(s_id) from fruits;select distinct s_id from fruits; select count(distinct s_id) from fruits;

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
# 提取出RFM模型關鍵字段 select buyer_id,datediff("2017-06-01",max(payment_time)) as R,count(buyer_id) as F,avg(actual_amt) as M from orders where payment_time between "2017-05-01 00:00:00" and "2017-05-31 23:59:59" group by buyer_id;

MySQL中所有函數:https://www.runoob.com/mysql/mysql-functions.html

(5)HAVING

having關鍵詞與where關鍵詞的作用有一些相似

我們繼續看鏈家二手房數據,現在的要求是按照地區、戶型、樓層和陽臺朝向分組統計靜安區和浦東區二手房的平均單價和總數量,并篩選出平均單價超過100000元的記錄:

# 按照地區、戶型、樓層和陽臺朝向分組統計靜安區和浦東區二手房的平均單價和總數量,并篩選出平均單價 超過100000元的記錄 select region,ftype,floor,direction, avg(price_unit) as avg_price,count(*) as counts from sec_buildings where region in ("靜安","浦東") group by region,ftype,floor,direction having avg_price > 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行的數據

# 查詢出建筑時間最悠久的5套二手房 select * from sec_buildings order by built_date limit 5; # 查詢出建筑時間最新的6套二手房 select * from sec_buildings order by built_date desc limit 6; # 查詢出浦東新區2013年建的二手房,并且總價排名在6-10 select * from sec_buildings where region="浦東" and built_date = "2013年建" order by tot_amt desc limit 5,5;

以上,就是查詢中常用的7個關鍵詞,同時也是數據提取時要用到的最基本的關鍵詞,同學們一定要掌握每個關鍵詞的作用和語法。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的MySQL——MySQL的数据查询功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。