MySQL排序檢索數據操作方法梳理
前言
本實驗中所用數據庫創(chuàng)建SQL語句以及插入數據到數據庫中的SQL語句鏈接:
鏈接: https://pan.baidu.com/s/14q4kBP9vGVbOU_4Ggo07GQ?pwd=4w4y
提取碼:4w4y
書接上回說到,MySQL檢索數據
本篇文章主要介紹如何使用 select 的 MySQL 語言,根據我們的想要排序檢索出的數據。
1. 排序數據
檢索出的數據不是隨機顯示的,若不排序,數據以其在表中出現(xiàn)的順序顯示。關系數據庫設計理論認為,如果不規(guī)定排序順序,則不能假定檢索出的數據的順序有任何意義。
為了明確地排序用 select 語句檢索出的數據,可以使用 order by 字句 取一個或多個列的名字,以此對輸出進行排序
如下:
select prod_name from Products order by prod_name;
注意: order by 字句的位置一定是 select 語句的最后一條字句,如果不是最后一條字句,將會出錯
2. 按多個列排序
通常我們不只需要按單個列排序,而是需要按多個列排序,當第一個列相等時,按第二個列排序…以此類推。這是,我們只需要將需要排序的多個列間用逗號隔開即可。
如下: 先按 prod_price 排序,prod_price 相同時,按照 prod_name 排序
select prod_id, prod_price, prod_name from Products order by prod_price, prod_name;
3. 按列位置排序
order by 字句還支持按照列位置進行排序,這種方法的好處是不需要重新輸入列名。但是它也有缺點,比如進行排序的列必須在 select 清單中,并且這種方式當 select 清單變化時容易造成錯誤。
如下:2, 3 分別表示 select 清單中的第二(prod_price),第三列(prod_name)
select prod_id, prod_price, prod_name from Products order by 2, 3;
4. 指定排序方式(升序或者降序)
order by 默認為升序排序 (asc),可以通過指定 desc 關鍵字來實現(xiàn)降序排序
如下: 通過在 order by 字句的最后加上 desc,實現(xiàn)降序排序
select prod_id, prod_price, prod_name from Products order by prod_price desc;
思考:當我們需要對多個列降序排序時,應該怎么寫呢?
desc 作用域問題: desc 關鍵字只作用于直接位于其前面的列名,因此若是想要對多個列降序排序,需要在需要降序排序的每個列的最后都加上 desc 關鍵字
如下: 按照 prod_price 降序排序,當 prod_price 相同時,按照 prod_id 降序排序;同理,當 prod_id 相同時,按照 prod_name 降序排序。
select prod_id, prod_price, prod_name from Products order by prod_price desc, prod_id desc, prod_name desc;
注: desc 只作用于直接位于其前面的列名的特點,使得我們可以很好的定制化排序,在需要降序排序的列后加 desc,而其他列仍然可以按照升序排序,這種機制非常靈活。
5. 擴展—文本性數據如何排序
在對文本性數據進行排序時,A與a是否相同;a位于B之前,還是Z之后,取決于數據庫的設計方式。
實際上,在字典排序順序中,A被視為與a相同,大部分數據庫也采取這種默認做法。要想改變這種行為,可以求助數據庫管理員的幫助,許多DBMS容許數據庫管理員改變這種行為。
到此這篇關于MySQL排序檢索數據操作方法梳理的文章就介紹到這了,更多相關MySQL檢索數據內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Win10系統(tǒng)下MySQL8.0.16 壓縮版下載與安裝教程圖解
這篇文章主要介紹了Win10系統(tǒng)下MySQL8.0.16 壓縮版下載與安裝教程圖解,本文圖文并茂給大家介紹的非常詳細,具有一定的參考解決價值,需要的朋友可以參考下2019-06-06
基于一致性hash算法(consistent hashing)的使用詳解
本篇文章對一致性hash算法(consistent hashing)的使用進行了詳細的分析介紹。需要的朋友參考下2013-05-05

