python mysql查表_python进阶(十、mysql:单表查询)
3.mysql數據庫
3.10 單表查詢
3.10.1. 簡單查詢
查詢在數據庫中使用的頻率是最高的:十次查詢,一次增刪改。
1)建表
2)插入數據
3.10.1.1. 選擇字段:select
select 字段名1,字段名2…… from 表名 where 條件;
3.10.1.2. 字段重命名(別名):as
select 字段名1,字段名2 as 別名…… from 表名 where 條件;
可以省略as,用空格代替
使用別名不會修改數據庫中的字段名
3.10.1.3. 去重:distinct
select distinct 字段名 from 表名 where 條件;
聯合去重
select distinct 字段名1, 字段名2…… from 表名 where 條件;
3.10.1.4. 四則運算(+ - * /)
運算后重命名
3.10.1.5. 拼接函數:concat(),拼接數據輸出字符串
concat_ws(分隔符,字段1,字段2……)
3.10.1.6. 判斷:case...end
3.10.2. where 約束
where作用:篩選所有符合條件的行
3.10.2.1. 比較運算符:> < >= <= <> !=
3.10.2.2. 滿足區間:between...and...
3.10.2.3. 成員判斷:in()
3.10.2.4. 模糊查詢:like
1)%表示任意多字符
2)_表示一個任意字符
3.10.2.5. 使用正則表達式模糊查詢:regexp
1)“^xxx” 表示以“xxx”開始
2)“xxx$” 表示以“x”結尾
3)“{n}” 重復n次
3.10.2.6. 邏輯運算符:and or not
在多個條件直接可以使用邏輯運算符 and or not
運算優先級:not > and > or
3.10.2.7. 判斷是否為空:is null
3.10.3. 分組:group by
分組group by
3.10.4. 聚合:count、max、min、avg、sum
聚合函數聚合的是組的內容:COUNT()、MAX()、MIN()、AVG()、SUM()
沒有使用group by分組,直接使用聚合函數,則把整張表作為一個分組。
1)count()根據分組計數
count(*)統計符合條件的行數
2)max()求最大值
3)min()求最小值
4)avg()求平均值
5)sum()求平均值
6)展示分組內某項數據的集合:GROUP_CONCAT()
只能展示,使用數據時無法分開取值
7)where 條件 + group by:對滿足條件的數據,進行分組
注意:使用聚合時,只有分組和聚合數據是匹配的
顯示其它字段時,顯示內容和聚合數據并不匹配。
3.10.5. 過濾:having
1)執行優先級從高到低:where > group by > having
2)Where 發生在分組group by之前,因而Where中可以有任意字段,但是絕對不能使用聚合函數。
3)Having發生在分組group by之后,因而Having中可以使用分組的字段,無法直接取到其他字段,可以使用聚合函數
4)where和having聯合使用
5)練習
(1)查詢各崗位內包含的員工個數大于2的崗位名、崗位內包含員工名字、個數
(2)查詢各崗位平均薪資大于10000的崗位名、平均工資
(3)查詢各崗位平均薪資大于10000且小于20000的崗位名、平均工資
3.10.6. 查詢排序:order by
1)默認排序是從小到大
也可以用asc(升序關鍵字)從小到大排列
2)從大到小排序:desc(降序關鍵字)
3)組合排序(主要關鍵字在前)
order by 字段1,字段2:先按字段1排序,字段1相同時按字段2排序。也可使用desc降序。
3.10.7. 限制查詢記錄數:limit
limit 數字:限制顯示幾條數據
limit m,n:從第m+1記錄開始取,取n條記錄;沒有給定m時,m默認為0。
limit n offset m = limit m,n
3.10.8. 數據查詢的執行順序
1)from子句指定數據源
2)where子句基于指定的條件對記錄進行篩選
3)group by子句將數據劃分為多個分組,使用聚合函數進行計算
4)使用having子句篩選分組
5)使用select取出字段值
6)使用oredr by對select取出的字段值進行排序
7)使用limit限制記錄數量
注意:having雖然執行在select之前,但執行having時解析了select,因此:
(1)select中的別名having可以使用,
(2)select中沒有的字段having不能使用。
重命名使用規則:
(1)where條件中不能使用select字段的重命名
(2)order by或者having可以使用select字段的重命名
3.10.9. select獲取數據機制
1)首先通過from表名,找到表
2)然后過where,group by,having鎖定數據行。
3)最后循環每一行,執行select語句,找到數據。
總結
以上是生活随笔為你收集整理的python mysql查表_python进阶(十、mysql:单表查询)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html实现动态多表单输入,使用java
- 下一篇: php引用计数器,PHP 引用计数器 通