首頁 > 軟體

MySQL排序檢索資料操作方法梳理

2022-10-23 18:01:45

前言

本實驗中所用資料庫建立SQL語句以及插入資料到資料庫中的SQL語句連結:

連結: https://pan.baidu.com/s/14q4kBP9vGVbOU_4Ggo07GQ?pwd=4w4y

提取碼:4w4y

書接上回說到,MySQL檢索資料

本篇文章主要介紹如何使用 select 的 MySQL 語言,根據我們的想要排序檢索出的資料。

1. 排序資料

檢索出的資料不是隨機顯示的,若不排序,資料以其在表中出現的順序顯示。關聯式資料庫設計理論認為,如果不規定排序順序,則不能假定檢索出的資料的順序有任何意義。

為了明確地排序用 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 關鍵字來實現降序排序

如下: 通過在 order by 字句的最後加上 desc,實現降序排序

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檢索資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com