MySQL排序檢索數(shù)據(jù)操作方法梳理
前言
本實(shí)驗(yàn)中所用數(shù)據(jù)庫(kù)創(chuàng)建SQL語(yǔ)句以及插入數(shù)據(jù)到數(shù)據(jù)庫(kù)中的SQL語(yǔ)句鏈接:
鏈接: https://pan.baidu.com/s/14q4kBP9vGVbOU_4Ggo07GQ?pwd=4w4y
提取碼:4w4y
書(shū)接上回說(shuō)到,MySQL檢索數(shù)據(jù)
本篇文章主要介紹如何使用 select 的 MySQL 語(yǔ)言,根據(jù)我們的想要排序檢索出的數(shù)據(jù)。
1. 排序數(shù)據(jù)
檢索出的數(shù)據(jù)不是隨機(jī)顯示的,若不排序,數(shù)據(jù)以其在表中出現(xiàn)的順序顯示。關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論認(rèn)為,如果不規(guī)定排序順序,則不能假定檢索出的數(shù)據(jù)的順序有任何意義。
為了明確地排序用 select 語(yǔ)句檢索出的數(shù)據(jù),可以使用 order by 字句 取一個(gè)或多個(gè)列的名字,以此對(duì)輸出進(jìn)行排序
如下:
select prod_name from Products order by prod_name;
注意: order by 字句的位置一定是 select 語(yǔ)句的最后一條字句,如果不是最后一條字句,將會(huì)出錯(cuò)
2. 按多個(gè)列排序
通常我們不只需要按單個(gè)列排序,而是需要按多個(gè)列排序,當(dāng)?shù)谝粋€(gè)列相等時(shí),按第二個(gè)列排序…以此類推。這是,我們只需要將需要排序的多個(gè)列間用逗號(hào)隔開(kāi)即可。
如下: 先按 prod_price 排序,prod_price 相同時(shí),按照 prod_name 排序
select prod_id, prod_price, prod_name from Products order by prod_price, prod_name;
3. 按列位置排序
order by 字句還支持按照列位置進(jìn)行排序,這種方法的好處是不需要重新輸入列名。但是它也有缺點(diǎn),比如進(jìn)行排序的列必須在 select 清單中,并且這種方式當(dāng) select 清單變化時(shí)容易造成錯(cuò)誤。
如下:2, 3 分別表示 select 清單中的第二(prod_price),第三列(prod_name)
select prod_id, prod_price, prod_name from Products order by 2, 3;
4. 指定排序方式(升序或者降序)
order by 默認(rèn)為升序排序 (asc),可以通過(guò)指定 desc 關(guān)鍵字來(lái)實(shí)現(xiàn)降序排序
如下: 通過(guò)在 order by 字句的最后加上 desc,實(shí)現(xiàn)降序排序
select prod_id, prod_price, prod_name from Products order by prod_price desc;
思考:當(dāng)我們需要對(duì)多個(gè)列降序排序時(shí),應(yīng)該怎么寫(xiě)呢?
desc 作用域問(wèn)題: desc 關(guān)鍵字只作用于直接位于其前面的列名,因此若是想要對(duì)多個(gè)列降序排序,需要在需要降序排序的每個(gè)列的最后都加上 desc 關(guān)鍵字
如下: 按照 prod_price 降序排序,當(dāng) prod_price 相同時(shí),按照 prod_id 降序排序;同理,當(dāng) prod_id 相同時(shí),按照 prod_name 降序排序。
select prod_id, prod_price, prod_name from Products order by prod_price desc, prod_id desc, prod_name desc;
注: desc 只作用于直接位于其前面的列名的特點(diǎn),使得我們可以很好的定制化排序,在需要降序排序的列后加 desc,而其他列仍然可以按照升序排序,這種機(jī)制非常靈活。
5. 擴(kuò)展—文本性數(shù)據(jù)如何排序
在對(duì)文本性數(shù)據(jù)進(jìn)行排序時(shí),A與a是否相同;a位于B之前,還是Z之后,取決于數(shù)據(jù)庫(kù)的設(shè)計(jì)方式。
實(shí)際上,在字典排序順序中,A被視為與a相同,大部分?jǐn)?shù)據(jù)庫(kù)也采取這種默認(rèn)做法。要想改變這種行為,可以求助數(shù)據(jù)庫(kù)管理員的幫助,許多DBMS容許數(shù)據(jù)庫(kù)管理員改變這種行為。
到此這篇關(guān)于MySQL排序檢索數(shù)據(jù)操作方法梳理的文章就介紹到這了,更多相關(guān)MySQL檢索數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mysql中批量替換某個(gè)字段的部分?jǐn)?shù)據(jù)(推薦)
這篇文章主要介紹了Mysql中批量替換某個(gè)字段的部分?jǐn)?shù)據(jù),通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02
關(guān)于MySQL中savepoint語(yǔ)句使用時(shí)所出現(xiàn)的錯(cuò)誤
這篇文章主要介紹了關(guān)于MySQL中savepoint語(yǔ)句使用時(shí)所出現(xiàn)的錯(cuò)誤,字符串出現(xiàn)e時(shí)所產(chǎn)生的問(wèn)題也被作為MySQL的bug進(jìn)行過(guò)提交,需要的朋友可以參考下2015-05-05
MySQL如何實(shí)現(xiàn)事務(wù)的ACID
這篇文章主要介紹了MySQL如何實(shí)現(xiàn)事務(wù)的四大特性,幫助大家更好的理解和學(xué)習(xí)MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下2020-09-09
mysql數(shù)據(jù)庫(kù)視圖和執(zhí)行計(jì)劃實(shí)戰(zhàn)案例
這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫(kù)視圖和執(zhí)行計(jì)劃的相關(guān)資料,在使用MySQL過(guò)程中視圖和執(zhí)行計(jì)劃是一個(gè)很好的工具,文中通過(guò)圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02
MYSQL必知必會(huì)讀書(shū)筆記第四章之檢索數(shù)據(jù)
MySQL是一種開(kāi)放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)。接下來(lái)通過(guò)本文給大家介紹MYSQL必知必會(huì)讀書(shū)筆記第四章之檢索數(shù)據(jù),感興趣的朋友一起學(xué)習(xí)吧2016-05-05
windows環(huán)境下mysql數(shù)據(jù)庫(kù)的主從同步備份步驟(單向同步)
本文主要是向大家描述的是在windows環(huán)境之下實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的主從同步備份的正確操作方案,以下就是文章的詳細(xì)內(nèi)容描述2011-05-05

