1.學習SQL的意義
產品經理經常會有數據分析的需要,數據分析分爲幾大步驟:數據的收集->數據結構分析->數據建模分析->結果可視化。
在這個過程中,數據的收集和分析,我們通常借用excel或數據庫。
因此,我們需要知道數據庫的一些操作和使用。
2.SQL的定義
SQL是數據庫的操作語言,我們一般登錄數據庫管理系統後,需要使用SQL語言來進行操作,SQL主要分爲:
數據定義語言(DDL):對數據庫對象進行創建,刪除等操作。數據對象包括:數據庫、表、視圖、索引等。
數據操作語言(DML):主要對各種表進行各類操作。比如:增加、刪除、修改等。
數據查詢語言(DQL):主要是針對單表或者多表中的數據進行各種查詢。
數據控制語言(DCL):主要是用來設置或者更改數據庫用戶或角色權限的語句,這些語句包括GRANT、DENY、REVOKE等語句
3.SQL查詢語句
select 列名 ---查詢指定要顯示的字段;如果要查看所有的列,則用*號表示
From 表A ---選擇要查詢的表
where 限制條件 ---各種過濾條件,例如:大於,小於,包含等
Group by ---按指定列名進行分組統計。比如今天新增了多少名會員,今天形成了多少筆訂單。顧名思義,分組統計就是要保證分組後的結果中有一個值是唯一的,比如統計每個IP登錄次數,IP就是唯一值,每個IP的最後登錄時間等,所以Group by的必須配合聚合函數來用,常用的聚合函數有:
count()計數
sum()求和
avg()平均數
max()最大值
min()最小值
Having 列名 ---對分組統計的結果進行限制,用來對Group by的結果進行過濾。比如我統計每天的訂單總數是多少,統計出來以後,我想知道訂單總數大於100 的是多少,主要對Group by統計之後的數據進行過濾
Order by 列名 ---對查詢結果進行排序(ASC升序,Desc降序),默認是升序
Limit N ---給出N條數據
4.實例
例1:
SELECT * //查詢結果展示所有字段
FROM wp_options //從wp_options表中獲取數據
LIMIT 20; //查詢結果限制展示20條,在命令行操作時要以分號結尾
例2:
select ip,date,count(date) as count_date //查詢結果展示ip,以及對ip分組後對應的字段,在字段後加上a as b表示a字段在輸出的時候列名用b表示
from wp_count //從wp_count表中獲取數據
group by date,ip //對date+ip進行分組展示,即相同date+ip條件下爲一條數據展示
HAVING count(ip)>5 //分組結果只展示ip統計次數大於5的
ORDER BY ip,count(ip) desc; //按ip和count(ip)進行排序,ip正序,count(ip)倒序
輸出結果如下:
5.各個關鍵語句的用法
“Where”是一個約束聲明,在查詢數據庫的結果返回之前對數據庫中的查詢條件進行約束,即在結果返回之前起作用,且where後面不能使用“聚合函數”;Where後面一般跟一些條件選項,這個在後面再詳細說一下。
“Group by”是分組展示的意思,即得出的結果只能有分組的字段加一個聚合函數(count,min,max,sum,avg等)。這種情況下查詢條件中只能存在分組字段,以及聚合函數字段,原因是分組之後同組別的數據只有一條,如果加上其他字段,則無法判斷該展示哪一條。
“Having”是一個過濾聲明,所謂過濾是在查詢數據庫的結果返回之後進行過濾,即在結果返回之後起作用,並且having後面可以使用“聚合函數”。
“ORDER BY”進行排序時,可以多個,如order by a,b,則a排序後對a排序下每一組結果按b進行排序。
歡迎訪問個人網站,瞭解更多:www.pmhuiyilu.com