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
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...