MySQL排序ORDER BY与分页LIMIT,SQL,减少数据表的网络传输量,完整详细可收藏
文章目錄
- 1、ORDER BY排序
- 2、LIMIT分頁(yè)
1、ORDER BY排序
1.1 排序規(guī)則
使用 ORDER BY 子句排序
ASC(ascend): 升序
DESC(descend):降序
ORDER BY 子句在SELECT語(yǔ)句的結(jié)尾。
1.2 單列排序
SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date ; #默認(rèn)升序 SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC ; #指定降序1.3 多列排序
SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC; #按照部門id升序,工資降序可以使用不在SELECT列表中的列排序。
在對(duì)多列進(jìn)行排序的時(shí)候,首先排序的第一列必須有相同的列值,才會(huì)對(duì)第二列進(jìn)行排序。如果第一列數(shù)據(jù)中所有值都是唯一的,將不再對(duì)第二列進(jìn)行排序。
2、LIMIT分頁(yè)
2.1 背景
背景1:查詢返回的記錄太多了,查看起來(lái)很不方便,要實(shí)現(xiàn)分頁(yè)查詢。
背景2:表里有 4 條數(shù)據(jù),我們只想要顯示第 2、3 條數(shù)據(jù)。
2.2 實(shí)現(xiàn)規(guī)則
分頁(yè)原理:所謂分頁(yè)顯示,就是將數(shù)據(jù)庫(kù)中的結(jié)果集,一段一段顯示出來(lái)需要的條件。MySQL中使用 LIMIT 實(shí)現(xiàn)分頁(yè)
格式:
第一個(gè)“位置偏移量”參數(shù)指示MySQL從哪一行開(kāi)始顯示,是一個(gè)可選參數(shù),如果不指定“位置偏移量”,將會(huì)從表中的第一條記錄開(kāi)始(第一條記錄的位置偏移量是0,第二條記錄的位置偏移量是1,以此類推);第二個(gè)參數(shù)“行數(shù)”指示返回的記錄條數(shù)。
--前10條記錄: SELECT * FROM 表名 LIMIT 0,10; 或者 SELECT * FROM 表名 LIMIT 10; --第11至20條記錄: SELECT * FROM 表名 LIMIT 10,10; --第21至30條記錄: SELECT * FROM 表名 LIMIT 20,10;MySQL 8.0中可以使用“LIMIT 3 OFFSET 4;”,意思是獲取從第5條記錄開(kāi)始后面的3條記錄,和“LIMIT4,3;”返回的結(jié)果相同。
分頁(yè)顯式公式:(當(dāng)前頁(yè)數(shù)-1)*每頁(yè)條數(shù),每頁(yè)條數(shù)
SELECT * FROM table LIMIT(PageNo - 1)*PageSize,PageSize;注意:LIMIT 子句必須放在整個(gè)SELECT語(yǔ)句的最后!
使用 LIMIT 的好處:約束返回結(jié)果的數(shù)量可以減少數(shù)據(jù)表的網(wǎng)絡(luò)傳輸量 ,也可以 提升查詢效率 。如果我們知道返回結(jié)果只有1條,就可以使用 LIMIT 1 ,告訴 SELECT 語(yǔ)句只需要返回一條記錄即可。這樣的好處就是 SELECT 不需要掃描完整的表,只需要檢索到一條符合條件的記錄即可返回。
總結(jié)
以上是生活随笔為你收集整理的MySQL排序ORDER BY与分页LIMIT,SQL,减少数据表的网络传输量,完整详细可收藏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 坐马桶的正确姿势
- 下一篇: SELECT执行过程,MySQL聚合函数