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 Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...