MySQL-day2_02

MySQL-day2

  • (四)排序
  • (五)聚合函數
    • 一、count 總記錄數
    • 二、max 最大值
    • 三、min 最小值
    • 四、sum 求和
    • 五、avg 平均值
  • (六)數據分組
    • 一、分組
    • 二、分組后的數據篩選
  • (七)數據分頁顯示
    • 一、獲取部分行
    • 二、分頁


(四)排序

  • 為了方便查看數據,可以對數據進行排序;
select * from 表名;
order by 字段1 asc|desc, 字段2 asc|desc, ...
  • 將行數據按照字段1 進行排序,如果某些字段1 的值相同時,則按照字段2 排序,以此類推;
  • 默認按照字段值從小到大排序;
  • asc(默認值)從小到大排序,升序;
  • desc 從大到小排序,降序;

例1:查詢所有學生記錄,按 age 從小到大排序

select * from students order by age;

例2:查詢所有學生記錄,按 age 從大到小排序,
年齡相同時,再按 studentNo 從小到大排序。

select * from students order by age desc, studentNo asc;

在這里插入圖片描述
▲ where 結合 order by:

select * from 表名 where 條件 order by 字段1, 字段2;

(五)聚合函數

為了快速得到統計數據,經常會用到如下 5 個聚合函數。
🔺注意:聚合函數不能在 where 后面的條件中使用!!!

一、count 總記錄數

count(*) 表示計算總記錄數,括號中寫 * 與字段名,結果是相同的。

例1:查詢學生總數(學生總數就是 students 表中記錄的總數)

select count(*) from students;
select count(name) from students;

例2:查詢性別 sex 為 ‘女’ 的學生總數

select count(*) from students where sex='女';

二、max 最大值

max(字段)表示求此字段的最大值。

例3:查詢最大 age

select max(age) from students;

例4:查詢性別sex 為’女’ 的最大年齡 age

select max(age) from students where sex='女';

🔺聚合函數不能在 where 后面的條件中使用。
🔺聚合函數不能與普通字段同時出現在查詢結果中。

三、min 最小值

min(字段)表示求此字段的最小值。

例7:查詢學生最小年齡 age

select min(age) from students;

例8:查詢 class 班級為 ‘1班’ 的最小年齡 age

select min(age) from students where class='1班';

四、sum 求和

sum(字段) 表示求此字段的和。

例9:查詢學生 age 年齡總和

select sum(age) from students;

例10:查詢 hometown 為 ‘北京’ 的學生 age 總和

select sum(age) from students where hometown='北京';

五、avg 平均值

avg(字段) 表示求此字段的平均值。

例11:查詢學生平均年齡

select avg(age) from students;

例12:查詢 sex 為 ‘男’ 的平均年齡

select avg(age) from students where sex='男';

如果有null,忽略null。
比如三個年齡分別是:10,20,null
avg 計算結果是:(10+20)/2=15


(六)數據分組

一、分組

  • 按照字段分組,表示此字段相同的數據會被放到一個組中。
  • 分組的目的是配合聚合函數,聚合函數會對每一組的數據分布進行統計。
select 字段1, 字段2, 聚合函數... from 表名 group by 字段1, 字段2 ...

例1:查詢各種 sex 性別的人數

select sex, count(*) from students group by sex;

在這里插入圖片描述

例2:查詢各年齡 age 的人數

SELECT age, count(*) from students group by age;

在這里插入圖片描述

例3:分別查詢 ‘1班’ 不同性別學生數量

SELECT sex, count(*) from students where class='1班' group by sex;

在這里插入圖片描述

例4:用數據分組方法,統計各個班級學生總數、平均年齡、最大年齡、最小年齡。

select class,count(*),avg(age),max(age),min(age) from students group by class;

在這里插入圖片描述

例5:用數據分組方法,統計各個班級學生總數、平均年齡、最大年齡、最小年齡。
但不統計 ‘3班’,統計結果按班級名稱從大到小排序。

select class,count(*),avg(age),max(age),min(age) from students 
where not class='3班' group by class order by class desc;

在這里插入圖片描述

二、分組后的數據篩選

select 字段1, 字段2, 聚合... from 表名
group by 字段1, 字段2, 字段3...
having 字段1,...聚合...

▲ having 后面的條件運算符與 where 的相同。

例1:使用 where 子句,查詢男生總人數

select count(*) from students where sex='男';

例2:使用 having 子句,查詢男生總人數

select sex, count(*) from students group by sex having sex='男';

例3:求班級人數大于3人的班級名字

select class from students group by class having count(*)>3;

例4:用 having 子句,查詢除了 ‘1班’ 以外,其他各個班級學生的平均年齡、最大年齡、最小年齡;

select class, avg(age),max(age),min(age) from students
group by class having not class='1班';

★ where 和 having:

  • where是對 from 后面指定的表進行數據篩選,屬于對原始數據的篩選;
  • having是對 group by 的結果進行篩選;
  • having 后面的條件中可以用聚合函數,where后面的條件不可以使用聚合函數。

練習1:查詢班級總人數大于2人的班級名稱以及班級對應的總人數。

SELECT class, count(*) from students group by class 
having count(*)>2;

在這里插入圖片描述
練習2:查詢平均年齡大于30歲id班級名稱和班級總人數。

select class,count(*),avg(age) from students 
group by class having avg(age)>30;

在這里插入圖片描述


(七)數據分頁顯示

一、獲取部分行

當數據量過大時,在一頁中查看數據是一件非常麻煩的事情。

語法:limit 開始行, 獲取行數;

select * from 表名 limit start, count
  • 從 start 開始,獲取 count 條數據;
  • start 索引從 0 開始,如省略 start 默認從 0 開始。

例1:查詢前 3 行學生記錄。

select * from students limit 0,3;

在這里插入圖片描述

例2:省略 start ,查詢前 5 行學生記錄

select * from students limit 5;

在這里插入圖片描述

例3:查詢從第 4 行開始的 3 條學生記錄

select * from students limit 3,3;

在這里插入圖片描述

例4:查詢年齡最大的同學的name

select name from students order by age desc limit 1;

例5:查詢年齡最小的女同學信息

select * from students where sex='女' order by age limit 1;

二、分頁

當一張表記錄特別多的時候,就需要用到分頁顯示。

已知:每頁顯示 m 條數據,求:查詢第 n 頁的數據。

select * from students limit (n-1)*m,m

例1:每頁顯示 4 條記錄,查詢第 3 頁的數據。
m = 4,n = 3;
(n-1)*m = (3-1)*4 = 8;

select * from students limit 8,4;

在這里插入圖片描述

例2:查詢 students 表,每頁顯示 5 條記錄,求總頁數。

  1. 查詢記錄總條數 a;
  2. 使用 a 除以每頁顯示條數 5,得到 b;
  3. 如果 b 為整數,則 b 為總頁數。
  4. 如果 b 不為整數,則 b+1 為總頁數。
操作說明
第一步select count(*) from students得到 students 表的總條數,結果為:12
第二步12 / 5 = 2.4不能整除
第三步2 + 1 = 3總頁數為 3 頁

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/96537.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/96537.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/96537.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HarmonyOS應用開發:深入ArkUI聲明式開發范式與最佳實踐

HarmonyOS應用開發:深入ArkUI聲明式開發范式與最佳實踐 引言 隨著HarmonyOS 4.0的發布及API 12的推出,華為的分布式操作系統進入了全新的發展階段。ArkUI作為HarmonyOS應用開發的核心框架,其聲明式開發范式(Declarative Paradigm&…

Claude-Flow AI協同開發:鉤子系統與 GitHub 集成

5.1 思維認知框架:從“開發助手”到“DevOps 智能體” 在此之前,我們將 Claude-Flow 視為一個強大的 “開發助手 (Development Assistant)” ,它在編碼、測試、重構等環節為我們提供支持。現在,我們需要再次進行思維升級&#xff…

DigitalOcean Kubernetes 現已支持 Gateway API 托管服務

在 DigitalOcean Kubernetes 集群中管理流量,一直以來主要依賴 Ingress。雖然能滿足基本需求,但在靈活性、角色分離和高級路由方面仍存在局限。今天,我們很高興迎來新的改變。 我們正式宣布,Kubernetes Gateway API 托管服務現已…

聚銘網絡入選數世咨詢《中國數字安全價值圖譜》“日志審計”推薦企業

近日,國內知名數字安全咨詢機構數世咨詢正式發布《中國數字安全價值圖譜》。聚銘網絡憑借領先的技術實力與出色的市場表現,成功入選“日志審計”領域重點推薦企業,彰顯了在該賽道的專業認可與品牌影響力。關于《中國數字安全價值圖譜》 在當下…

豆包、Kimi、通義千問、DeepSeek、Gamma、墨刀 AI”六款主流大模型(或 AI 平臺)生成 PPT 的完整流程

、先厘清 3 個概念,少走彎路大模型 ≠ PPT 軟件豆包、Kimi、通義千問、DeepSeek 本身只負責“出大綱/出文案”,真正的“一鍵配圖排版”要靠官方 PPT 助手或第三方平臺(博思 AiPPT、迅捷 AiPPT、Gamma、墨刀 AI 等)。兩條主流技術路…

Redis哈希(Hash):適合存儲對象的數據結構,優勢與坑點解析

Redis哈希(Hash):適合存儲對象的數據結構,優勢與坑點解析 1. Redis哈希概述 1.1 什么是Redis哈希 Redis哈希(Hash)是一種映射類型(Map),由多個字段值對(fi…

Python的uv包管理工具使用

一、簡介 uv是一個繼Python版本管理、Python包管理、項目管理、虛擬環境管理于一體的工具,由于底層是用Rust編寫的,uv的執行速度非常快。 安裝 pip install uv鏡像源設置 uv默認安裝包是從pypi上下載的,速度比較慢。我們可以設置鏡像源&#…

JavaScript事件機制與性能優化:防抖 / 節流 / 事件委托 / Passive Event Listeners 全解析

目標:把“為什么慢、卡頓從哪來、該怎么寫”一次說清。本文先講事件傳播與主線程瓶頸,再給出四件法寶(防抖、節流、事件委托、被動監聽),最后用一套可復制的工具函數 清單收尾。1)先理解“為什么會卡”&am…

【Chrome】chrome 調試工具的network選項卡,如何同時過濾出doc js css

通過類型按鈕快速篩選(更直觀)在 Network 選項卡中,找到頂部的 資源類型按鈕欄(通常在過濾器搜索框下方)。按住 Ctrl 鍵(Windows/Linux)或 Command 鍵(Mac),同…

Elasticsearch (ES)相關

在ES中,已經有Term Index,那還會走倒排索引嗎 你這個問題問得很到位 👍。我們分清楚 Term Index 和 倒排索引 在 Elasticsearch (ES) 里的關系:1. 倒排索引(Inverted Index) 是 Lucene/ES 檢索的核心。文檔…

pre-commit run --all-files 報錯:http.client.RemoteDisconnected

報錯完整信息初步原因是這樣 報錯是 Python 的 http.client.RemoteDisconnected,意思是 在用 urllib 請求遠程 URL 時,遠程服務器直接斷開了連接,沒有返回任何響應。在你的堆棧里,它出現在 pre-commit 嘗試安裝 Golang 環境的時候…

【C++】STL·List

1. list的介紹及使用 1.1list介紹 List文檔介紹 1.2 list的使用 list中的接口比較多,此處類似,只需要掌握如何正確的使用,然后再去深入研究背后的原理,已 達到可擴展的能力。以下為list中一些常見的重要接口。 1.2.1 list的構造…

圖論2 圖的數據結構表示

目錄 一 圖的數據結構表示 1 鄰接矩陣(Adjacency Matrix) 2 鄰接表(Adjacency List) 3 邊列表(Edge List) 4 十字鏈表(Orthogonal List / Cross-linked List, 十字鏈表) 5 鄰接…

在Excel中刪除大量間隔空白行

在 Excel 中刪除大量間隔空白行,可使用定位空值功能來快速實現。以下是具體方法:首先,選中包含空白行的數據區域。可以通過點擊數據區域的左上角單元格,然后按住鼠標左鍵拖動到右下角最后一個單元格來實現。接著,按下快…

【C 學習】10-循環結構

“知道做不到就是不知道”一、條件循環1. while只要條件為真&#xff08;true&#xff09;&#xff0c;就會重復執行循環體內的代碼。while (條件) {// 循環體&#xff08;要重復執行的代碼&#xff09; }//示例 int i 1; while (i < 5) {printf("%d\n", i);i; …

音視頻的下一站:協議編排、低時延工程與國標移動化接入的系統實踐

一、引言&#xff1a;音視頻的基礎設施化 過去十年&#xff0c;音視頻的兩條主線清晰可辨&#xff1a; 娛樂驅動&#xff1a;直播、電商、短視頻把“實時觀看與互動”變成高頻日常。 行業擴展&#xff1a;教育、會議、安防、政務逐步把“可用、可管、可控”引入產業系統。 …

SAM-Med3D:面向三維醫療體數據的通用分割模型(文獻精讀)

1) 深入剖析:核心方法與圖示(Figure)逐一對應 1.1 單點三維提示的任務設定(Figure 1) 論文首先將3D交互式分割的提示形式從“2D逐片(每片1點,共N點)”切換為“體素級單點(1個3D點)”。Figure 1直觀對比了 SAM(2D)/SAM-Med2D 與 SAM-Med3D(1點/體) 的差異:前兩者…

【Spring】原理解析:Spring Boot 自動配置進階探索與優化策略

一、引言在上一篇文章中&#xff0c;我們對 Spring Boot 自動配置的基本原理和核心機制進行了詳細的分析。本文將進一步深入探索 Spring Boot 自動配置的高級特性&#xff0c;包括如何進行自定義擴展、優化自動配置的性能&#xff0c;以及在實際項目中的應用優化策略。同時&…

OpenCV:圖像直方圖

目錄 一、什么是圖像直方圖&#xff1f; 關鍵概念&#xff1a;BINS&#xff08;區間&#xff09; 二、直方圖的核心作用 三、OpenCV 計算直方圖&#xff1a;calcHist 函數詳解 1. 函數語法與參數解析 2. 基礎實戰&#xff1a;計算灰度圖直方圖 代碼實現 結果分析 3. 進…

docke筆記下篇

本地鏡像發布到阿里云 本地鏡像發布到阿里云流程 鏡像的生成方法 基于當前容器創建一個新的鏡像&#xff0c;新功能增強 docker commit [OPTIONS] 容器ID [REPOSITORY[:TAG]] OPTIONS說明&#xff1a; OPTIONS說明&#xff1a; -a :提交的鏡像作者&#xff1b; -m :提交時的說…