大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 簡(jiǎn)述5種MySQL數(shù)據(jù)排序

簡(jiǎn)述5種MySQL數(shù)據(jù)排序

更新時(shí)間:2021-01-22 17:43:30 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1686次

數(shù)據(jù)排序是按一定順序?qū)?shù)據(jù)排列,以便研究者通過(guò)瀏覽數(shù)據(jù)發(fā)現(xiàn)一些明顯的特征或趨勢(shì), 找到解決問(wèn)題的線索。但是在MySQL數(shù)據(jù)庫(kù)中,默認(rèn)情況下,SELECT語(yǔ)句不會(huì)對(duì)返回的結(jié)果進(jìn)行排序,意味著查詢結(jié)果的顯示順序是不確定的。如果想要將結(jié)果按照某種規(guī)則進(jìn)行排序,例如按照入職先后順序顯示員工的信息,可以使用ORDER BY子句。MySQL數(shù)據(jù)排序分為以下5種:?jiǎn)瘟信判颉⒍嗔信判颉⒈磉_(dá)式排序,空值排序和中文排序,下面的內(nèi)容將依次介紹這5種MySQL排序。

 

1.單列排序

基于單個(gè)字段排序按照單個(gè)字段的值進(jìn)行排序稱為單列排序。

單列排序的語(yǔ)法如下:

SELECT col1, col2, ...

FROM table_name

[WHERE conditions]

ORDER BY col1 [ASC | DESC];

其中,ORDER BY用于指定排序的字段;

ASC表示升序排序(Ascending),DESC表示降序排序(Descending),默認(rèn)值為升序排序。例如,以下查詢按照員工的入職先后順序進(jìn)行排序顯示:

select emp_name, hire_date

from employee

order by hire_date;

 emp_name|hire_date |

---------|----------|

 趙    |2000-01-01|

 錢    |2000-01-01|

 孫    |2000-01-01|

 李    |2002-08-08|

 周    |2002-08-08|

 吳    |2005-12-19|

...對(duì)于升序排序,數(shù)字按照從小到大的順序排列,字符按照編碼的順序排列,日期時(shí)間按照從早到晚的順序排列;降序排序正好相反。在上面的查詢結(jié)果中,入職日期為 2000-01-01 的員工有 3 位。那么他們誰(shuí)排在前面,誰(shuí)排在后面呢?答案是不確定。如果要解決這個(gè)問(wèn)題,需要使用多列排序。

 

2.多列排序

多列排序是指基于多個(gè)字段的值排序,多個(gè)字段使用逗號(hào)進(jìn)行分隔。

多列排序的語(yǔ)法如下:SELECT col1, col2, ...

FROM table_name

[WHERE conditions]

ORDER BY col1 [ASC | DESC], col2 [ASC | DESC], ...;

執(zhí)行過(guò)程中,先基于第一個(gè)字段進(jìn)行排序;

對(duì)于第一個(gè)字段排序相同的數(shù)據(jù),再基于第二個(gè)字段進(jìn)行排序;

依此類推。例如,以下語(yǔ)句查詢行政管理部(dept_id = 1)的員工信息;

按照入職先后進(jìn)行排序,入職日期相同再按照月薪從高到低排序:

select emp_name, sex, hire_date, salary

from employee

where dept_id = 1

order by hire_date asc, salary desc;

 emp_name|sex |hire_date |salary  |

---------|----|----------|--------|

 趙     |男  |2000-01-01|30000.00|

 錢     |男  |2000-01-01|26000.00|

 孫     |男  |2000-01-01|24000.00|

 

3. 表達(dá)式排序

除了使用字段的值進(jìn)行排序之外,也可以基于表達(dá)式的結(jié)果進(jìn)行排序。例如,以下語(yǔ)句按照年度總收入(年薪加獎(jiǎng)金)進(jìn)行排序:

select emp_name, salary, bonus, salary * 12 + ifnull(bonus, 0) as total_income

from employee

order by total_income;

emp_name|salary  |bonus   |salary * 12 + ifnull(bonus, 0)|

emp_name|salary  |bonus   |total_income|

---------|--------|--------|------------|

趙   | 4000.00|        |    48000.00|

錢   | 4000.00| 1500.00|    49500.00|

孫   | 4200.00|        |    50400.00|

李   | 4100.00| 2000.00  |    51200.00|

周   | 4300.00|        |    51600.00|

吳   | 4700.00|        |    56400.00|

...其中,ifnull(bonus, 0) 函數(shù)用于將 bonus 為空的數(shù)據(jù)轉(zhuǎn)換為 0;該函數(shù)將會(huì)在后續(xù)文章中進(jìn)行介紹。另外,在指定排序字段時(shí),除了使用字段名或者表達(dá)式之外,也可以使用它們?cè)诓樵兞斜碇谐霈F(xiàn)的數(shù)字編號(hào)順序。

上面的示例可以改寫如下:

select emp_name, salary, bonus, salary * 12 + ifnull(bonus, 0) as total_income

from employee

order by 4;

在查詢列表中,total_income 是返回的第 4 個(gè)字段;因此該語(yǔ)句也是按照年度總收入從低到高進(jìn)行排序。

 

4.空值排序

空值(NULL)在 SQL 中表示未知或者缺失的值。如果排序的字段中存在空值時(shí),結(jié)果會(huì)怎么樣呢?

以下語(yǔ)句按照獎(jiǎng)金從高到低進(jìn)行排序:

select emp_name, bonus

from employee

where dept_id = 3

order by bonus desc;

emp_name|bonus  |

----------|-------|

趙     |5000.00|

錢    |       |從查詢結(jié)果可以看到,空值排在了最后。也就是說(shuō),MySQL 認(rèn)為空值最小,升序時(shí)排在最前,降序時(shí)排在最后。如果想要調(diào)整空值的排序位置,可以使用函數(shù)(例如 ifnull)將空值轉(zhuǎn)換為一個(gè)指定的值。例如,以下語(yǔ)句將獎(jiǎng)金為空的數(shù)據(jù)轉(zhuǎn)換為0:

select emp_name, ifnull(bonus, 0) as bonus

from employee

where dept_id = 3

order by ifnull(bonus, 0);

  emp_name|bonus  |

----------|-------|

趙    |   0.00|

錢     |5000.00|10.5

 

5.中文排序

中文排序我們可以為數(shù)據(jù)庫(kù)、表或者字段指定一個(gè)字符集(Charset)和排序規(guī)則(Collation)。字符集決定了能夠存儲(chǔ)哪些字符,比如 ASCII 字符集只能存儲(chǔ)簡(jiǎn)單的英文、數(shù)字和一些控制字符;GB2312 字符集可以存儲(chǔ)中文;Unicode 字符集能夠支持世界上的各種語(yǔ)言。排序規(guī)則定義了字符集中字符的排序順序,包括是否區(qū)分大小寫,是否區(qū)分重音等。對(duì)于中文而言,排序方式與英文有所不同;中文通常需要按照拼音、偏旁部首或者筆畫進(jìn)行排序。

 

以上的5種數(shù)據(jù)排序基本上囊括了MySQL的數(shù)據(jù)排序,良好的排序方法可以有效提高排序速度,提高排序效果,提升用戶的使用體驗(yàn),千萬(wàn)不能小覷,在本站的MySQL教程中,對(duì)各種MySQL數(shù)據(jù)排序方式都有詳細(xì)的實(shí)例介紹,感興趣的小伙伴千萬(wàn)不要錯(cuò)過(guò)學(xué)好MySQL數(shù)據(jù)排序的機(jī)會(huì)。

 

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 美女超逼 | 自拍偷拍三级 | 国产91久久最新观看地址 | 久热re在线视频精品免费 | 农村三级孕妇视频在线 | 日本不卡毛片一二三四 | 成年女人视频播放免费观看 | 免费一级真人毛片 | 国产综合婷婷 | 国产精品毛片天天看片 | 日本人wwwxxⅹ免费视频 | 天天干成人网 | 九九99九九视频在线观看 | www久久只有这里有精品 | 青草青青在线观看免费视频 | 中文字幕热久久久久久久 | 国产v片成人影院在线观看 国产v视频 | 免费高清毛片 | 国产成人精品日本亚洲语音2 | 99免费在线视频 | 国产最新在线视频 | 亚洲va在线va天堂va四虎 | 日韩精品久久不卡中文字幕 | 天天爽视频 | 久爱午夜精品免费视频 | 国产午夜亚洲精品久久www | 男人的天堂欧美精品色偷偷 | 成人欧美精品一区二区不卡 | www.久久99| 欧美一区二区三区久久久人妖 | 日韩一区二区三区视频 | 亚洲成人免费观看 | 夜色福利久久久久久777777 | 免费一级毛片在线播放视频 | 天天插天天操天天干 | 十大黄色免费网站 | 久久天天躁夜夜躁狠狠躁2020 | 欧美成人天天综合天天在线 | 在线黄色免费 | 亚洲国产97在线精品一区 | 在线亚洲 欧美 日本专区 |