MySql 篩選條件、聚合分組、連接查詢

来源:https://www.cnblogs.com/jiyu-hlzy/archive/2019/11/17/11876717.html
-Advertisement-
Play Games

篩選條件 比較運算符 等於: = ( 註意!不是 == ) 不等於: != 或 大於: 大於等於: = 小於: 聚合分組 常用聚合函數 統計個數:COUNT(column) 最大值:MAX(column) 最小值:MIN(column) 求和:SUM(column) 平均值:AVG(column) ...


篩選條件

比較運算符

  • 等於: = ( 註意!不是 == )
  • 不等於: != 或 <>
  • 大於: >
  • 大於等於: >=
  • 小於: <
  • 小於等於: <=
  • IS NULL
  • IS NOT NULL

邏輯運算符

  • 與:and
  • 或:or
  • 非:not

其它操作

  • 排序:order by
    • 正序:asc
    • 倒序:desc
    • 例:select * from students order by age desc ;
  • 限制:limit
    • 控制顯示m條數據:limit m
    • 從下標為m的行數開始顯示n條數據:limit m,n
    • 例:select * from students limit 3,2 ;
  • 去重:distinct
    • 例:select distinct * from students;
  • 模糊查詢:like
    • 任意一個字元:_
    • 任意多個字元:%
    • 例:select * from students where name like '%abc_' ;
  • 範圍查詢
    • 連續範圍: BETWEEN a AND b 相當於a <= value <= b
    • 間隔返回: IN
    • 例:select * from students where id in(1,3,5,7);
  • 別名:as


聚合分組

常用聚合函數

  • 統計個數:COUNT(column)
  • 最大值:MAX(column)
  • 最小值:MIN(column)
  • 求和:SUM(column)
  • 平均值:AVG(column)
  • 列出欄位全部值:GROUP_CONCAT(column)

分組查詢:group by

  • 在分組的情況下,只能夠出現分組欄位和聚合欄位
  • 其他的欄位沒有意義,會報錯!
  • Select 欄位 from 表 group by 欄位;
  • Select 欄位,count(*) from 表 group by 欄位;

聚合篩選:having

  • 加having條件表達式,可以對輸出的結果做出限制
  • Select 欄位1 from 表名 group by 欄位1,欄位2 having 欄位2>=80;

執行順序

  • 如果一個查詢語句中同時包含了別名(as),聚合函數, where, having,那麼他們的執行順序是
    • 先是執行:where
    • 然後執行:聚合函數和別名
    • 最後執行:having


子查詢

將一個查詢的結果留下來用於下一次查詢 ( select 中嵌套 select )

要求:

  • 1) 嵌套在查詢內部
  • 2) 必須始終出現在圓括弧內

例:

  • 求出學生的平均年齡
    • select avg(age) from students;
  • 查找出大於平均年齡的數據
    • select * from student where age > 19;
  • 將求出的平均年齡的SQL語句用於查找大於平均年齡的語句中
    • select * from students where age > (select avg(age) from students);


連接查詢

內連接:inner join

  • 無條件內連接:
    • 無條件內連接,又名交叉連接/笛卡爾連接
    • 第一張表中的每一項會和另一張表的每一項依次組合
    • select * from 表1 inner join 表2
  • 有條件內連接:
    • 在無條件內鏈接的基礎上,加上一個on子句
    • 當連接的時候,篩選出那些有實際意義的記錄來進行組合
    • select * from 表1 as a inner join 表2 as b on a.id = b.id

外連接:{left | right} join

  • 左外連接: (以左表為基準)
    • 兩張表做連接的時候,在連接條件不匹配的時候
    • 留下左表中的數據,而右表中的數據以NULL填充
    • select * from 表1 as a left join 表2 as b on a.id = b.id
  • 右外連接: (以右表為基準)
    • 對兩張表做連接的時候,在連接條件不匹配的時候
    • 留下右表中的數據,而左表中的數據以NULL填充
    • select * from 表1 as a right join 表2 as b on a.id = b.id





您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • "點我查看秘籍連載" I/O操作和DMA、RDMA 用戶進程想要執行IO操作時(例如想要讀磁碟數據、向磁碟寫數據、讀鍵盤的輸入等等),由於用戶進程工作在用戶模式下,它沒有執行這些操作的許可權,只能通過發起對應的系統調用請求操作系統幫忙完成這些操作。這裡因為系統調用產生中斷將陷入到內核,進行一次上下文切 ...
  • 1.作用 useradd或adduser命令用來建立用戶帳號和創建用戶的起始目錄,使用許可權是超級用戶。 2.格式 useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p p ...
  • Spark運行模式有Local,STANDALONE,YARN,MESOS,KUBERNETES這5種,其中最為常見的是YARN運行模式,它又可分為Client模式和Cluster模式。這裡以Spark自帶的SparkPi來說明這些運行模式。 本文作為第一篇,先結合SparkPi程式來說明Yarn ...
  • 原文地址 https://sspai.com/post/35225 讓我們從實際需求出發,看看問題出在哪裡,併在此基礎上認識和學習使用 Hazel。 電腦隨著使用時間的增長,其中的文件也在瘋狂的增長,時間長了也就會出現各種混亂:大量文件堆放在一起,舊文件很少清理,分不清哪些文件還有用,找不到需要的文 ...
  • 表結構修改(alter) 查看表的結構:desc 表名; 修改表名:alter table 表名 rename to 新表名; 修改欄位名:alter table 表名 change 舊欄位名 新欄位名 數據類型; 修改欄位類型:alter table 表名 modify 欄位名 數據類型; 添加字 ...
  • 雅虎日本是一家雅虎和軟銀合資的日本互聯網公司,是日本最受歡迎的門戶網站之一。雅虎日本的互聯網服務在日本市場占主導地位。 下圖從三個維度顯示了雅虎日本的經營規模。第一個是服務數量,雅虎日本提供上百種互聯網服務;第二個是伺服器數量,雅虎日本使用超過 150,000 台伺服器(大多為裸機伺服器)全天候支持 ...
  • 轉載自:https://www.cnblogs.com/swtool/p/8202965.html ...
  • sqlite中只支持 ALTER TABLE 命令的 RENAME TABLE 和 ADD COLUMN。 其他類型的 ALTER TABLE 操作如 DROP COLUMN,ALTER COLUMN,ADD CONSTRAINT 等等均被忽略。 重命名錶名: alter table tableNa ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...