mysql必知必會--排序檢索數據

来源:https://www.cnblogs.com/ygjzs/archive/2020/01/21/12221962.html
-Advertisement-
Play Games

排序數據 其實,檢索出的數據並不是以純粹的隨機順序顯示的。如果不排 序,數據一般將以它在底層表中出現的順序顯示。這可以是數據最初 添加到表中的順序。但是,如果數據後來進行過更新或刪除,則此順 序將會受到MySQL重用回收存儲空間的影響。因此,如果不明確控 制的話,不能(也不應該)依賴該排序順序。關係 ...


排序數據

其實,檢索出的數據並不是以純粹的隨機順序顯示的。如果不排
序,數據一般將以它在底層表中出現的順序顯示。這可以是數據最初
添加到表中的順序。但是,如果數據後來進行過更新或刪除,則此順
序將會受到MySQL重用回收存儲空間的影響。因此,如果不明確控
制的話,不能(也不應該)依賴該排序順序。關係資料庫設計理論認
為,如果不明確規定排序順序,則不應該假定檢索出的數據的順序有
意義。

子句(clause) SQL語句由子句構成,有些子句是必需的,而
有的是可選的。一個子句通常由一個關鍵字和所提供的數據組
成。子句的例子有 SELECT 語句的 FROM 子句

為了明確地排序用 SELECT 語句檢索出的數據,可使用 ORDER BY 子句。
ORDER BY 子句取一個或多個列的名字,據此對輸出進行排序

通過非選擇列進行排序 通常, ORDER BY 子句中使用的列將
是為顯示所選擇的列。但是,實際上並不一定要這樣,用非
檢索的列排序數據是完全合法的

按多個列排序

經常需要按不止一個列進行數據排序。例如,如果要顯示雇員清單,
可能希望按姓和名排序(首先按姓排序,然後在每個姓中再按名排序)。
如果多個雇員具有相同的姓,這樣做很有用。
為了按多個列排序,只要指定列名,列名之間用逗號分開即可(就
像選擇多個列時所做的那樣)。
重要的是理解在按多個列排序時,排序完全按所規定的順序進行。

指定排序方向

數據排序不限於升序排序(從 A 到 Z )。這隻是預設的排序順序,還可
以使用 ORDER BY 子句以降序(從 Z 到 A )順序排序。為了進行降序排序,
必須指定 DESC 關鍵字

但是,如果打算用多個列排序怎麼辦?下麵的例子以降序排序產品
(最貴的在最前面),然後再對產品名排序

DESC 關鍵字只應用到直接位於其前面的列名。在上例中,只對
prod_price 列指定 DESC ,對 prod_name 列不指定。因此,
prod_price 列以降序排序,而 prod_name 列(在每個價格內)仍然按標準
的升序排序。

在多個列上降序排序 如果想在多個列上進行降序排序,必須
對每個列指定 DESC 關鍵字
與 DESC 相反的關鍵字是 ASC ( ASCENDING ),在升序排序時可以指定它。
但實際上, ASC 沒有多大用處,因為升序是預設的(如果既不指定 ASC 也
不指定 DESC ,則假定為 ASC )

區分大小寫和排序順序 在對文本性的數據進行排序時,A與
a相同嗎?a位於B之前還是位於Z之後?這些問題不是理論問
題,其答案取決於資料庫如何設置。
在字典(dictionary)排序順序中,A被視為與a相同,這是MySQL
(和大多數資料庫管理系統)的預設行為。但是,許多資料庫
管理員能夠在需要時改變這種行為(如果你的資料庫包含大量
外語字元,可能必須這樣做)。
這裡,關鍵的問題是,如果確實需要改變這種排序順序,用簡
單的 ORDER BY 子句做不到。你必須請求資料庫管理員的幫助

使用 ORDER BY 和 LIMIT 的組合,能夠找出一個列中最高或最低的值。
下麵的例子演示如何找出最昂貴物品的值:

prod_price DESC 保證行是按照由最昂貴到最便宜檢索的,而
LIMIT 1 告訴MySQL僅返回一行。

ORDER BY 子句的位置 在給出 ORDER BY 子句時,應該保證它
位於 FROM 子句之後。如果使用 LIMIT ,它必須位於 ORDER BY

本章學習瞭如何用 SELECT 語句的 ORDER BY 子句對檢索出的數據進行
排序。這個子句必須是 SELECT 語句中的最後一條子句。可根據需要,利
用它在一個或多個列上對數據進行排序
之後。使用子句的次序不對將產生錯誤消息


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

-Advertisement-
Play Games
更多相關文章
  • WEB管理工具 WebVirtMgr WebVirtMgr是一個基於libvirt的Web界面,用於管理虛擬機。它允許您創建和配置新域,並調整域的資源分配。VNC查看器為來賓域提供完整的圖形控制台。KVM是目前唯一支持的虛擬機管理程式。 基礎環境 hosts免密登錄 kvm所用的所有伺服器都需要互相 ...
  • JDK 的安裝系統安裝就不做過多介紹,大家從網上尋找安裝步驟進行安裝,不過我推薦大家進行安裝時選擇桌面圖形化格式進行安裝,方便做一部分操作,同時在安裝過程中選擇英文模式,同時我自己在安裝的過程中發現使用Oracle VM VirtualBox這個虛擬機工具比使用VM工具開發更加方便些 使用工具 系統 ...
  • 造成這種情況的原因有很多,如果直接百度錯誤信息的話,不一定能很快解決問題,所以,出現這種情況,我們可以使用 mysqld console 命令來查看報錯信息,然後根據報錯信息來百度,這樣就很快定位到問題所在。看到以下截圖,我的問題是 Please make sure that directory e ...
  • 推薦閱讀: 論主數據的重要性(正確理解元數據、數據元) CDC+ETL實現數據集成方案 Java實現impala操作kudu 實戰kudu集成impala impala基本介紹 impala是cloudera提供的一款高效率的sql查詢工具,提供實時的查詢效果,官方測試性能比hive快10到100倍 ...
  • 正則表達式介紹 前兩章中的過濾例子允許用匹配、比較和通配操作符尋找數據。對 於基本的過濾(或者甚至是某些不那麼基本的過濾),這樣就足夠了。但 隨著過濾條件的複雜性的增加, WHERE 子句本身的複雜性也有必要增加。 這也就是正則表達式變得有用的地方。正則表達式是用來匹配文本 的特殊的串(字元集合)。 ...
  • LIKE 操作符 前面介紹的所有操作符都是針對已知值進行過濾的。不管是匹配一 個還是多個值,測試大於還是小於已知值,或者檢查某個範圍的值,共 同點是過濾中使用的值都是已知的。但是,這種過濾方法並不是任何時 候都好用。例如,怎樣搜索產品名中包含文本anvil的所有產品?用簡單 的比較操作符肯定不行,必 ...
  • 如何組合 WHERE 子句以建立功能更強的更高級的搜索條件?如何使用 NOT 和 IN 操作符? 組合 WHERE 子句 第6章中介紹的所有 WHERE 子句在過濾數據時使用的都是單一的條 件。為了進行更強的過濾控制,MySQL允許給出多個 WHERE 子句。這些子 句可以兩種方式使用:以 AND ...
  • 使用 WHERE 子句 資料庫表一般包含大量的數據,很少需要檢索表中所有行。通常只 會根據特定操作或報告的需要提取表數據的子集。只檢索所需數據需要 指定搜索條件(search criteria),搜索條件也稱為過濾條件(filter condition)。 在 SELECT 語句中,數據根據 WHE ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...