第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

SQL Order By

1. 定義

維基百科:Order By可以根據(jù)一個(gè)或多個(gè)字段對(duì)結(jié)果集排序。

2. 前言

本小節(jié),我們將一起學(xué)習(xí) SQL Order By。

排序是非常常見(jiàn)的一個(gè)功能點(diǎn),因此 SQL 提供了 Order By 來(lái)幫助開(kāi)發(fā)者對(duì)結(jié)果集排序;Order By 默認(rèn)按照升序排序,即ASC,
我們還可以顯示指定排序?yàn)榻敌?code>DESC。

本小節(jié)測(cè)試數(shù)據(jù)如下,請(qǐng)先在數(shù)據(jù)庫(kù)中執(zhí)行:

DROP TABLE IF EXISTS imooc_user;
CREATE TABLE imooc_user
(
  username varchar(20),
  age int
);
INSERT INTO imooc_user(username,age) VALUES('pedro',23), ('pedro',17), ('mike',18), ('jerry',28);

3. 單字段排序

Order By 多用于根據(jù)單個(gè)字段進(jìn)行排序,即單字段排序。

語(yǔ)法如下:

SELECT [col] FROM [table_name] ORDER BY [col] [DESC|ASC];

其中table_name是數(shù)據(jù)表名,col表示字段名,[DESC|ASC]表示可以選擇排序方式為降序(DESC)升序(ASC)。

3.1 例1 升序排序 age 字段

請(qǐng)書寫 SQL 語(yǔ)句,按照 age 字段升序查詢imooc_user表。

分析:

按照排序語(yǔ)法寫出語(yǔ)句即可。

語(yǔ)句:

SELECT username,age FROM imooc_user ORDER BY age;

結(jié)果如下:

+----------+-----+
| username | age |
+----------+-----+
| mike     | 18  |
| pedro    | 23  |
| jerry    | 28  |
+----------+-----+

當(dāng)然也可以顯示指定排序方式:

SELECT username,age FROM imooc_user ORDER BY age ASC;

3.2 例2 降序排序 age 字段

請(qǐng)書寫 SQL 語(yǔ)句,按照 age 字段降序查詢imooc_user表。

分析:

同上,只需改變排序方式為降序即可。

語(yǔ)句

SELECT username,age FROM imooc_user ORDER BY age DESC;

結(jié)果如下:

+----------+-----+
| username | age |
+----------+-----+
| jerry    | 28  |
| pedro    | 23  |
| mike     | 18  |
+----------+-----+

4. 多字段排序

Order By 還可用于多字段排序。

語(yǔ)法如下:

SELECT [col] FROM [table_name] ORDER BY [col1] [DESC|ASC],[col2] [DESC|ASC];

其中table_name是數(shù)據(jù)表名,col表示字段名,[DESC|ASC]表示可以選擇排序方式為降序(DESC)升序(ASC),數(shù)字1、2表示多個(gè)字段。

多字段排序會(huì)優(yōu)先以第一字段排序后,再排序第二字段。

4.1 例3 升序排序 username、age 字段

請(qǐng)書寫 SQL 語(yǔ)句,按照usernameage字段均升序查詢imooc_user數(shù)據(jù),。

分析:

只需將 Order By 后的單字段改為雙字段,且用,分割即可。

語(yǔ)句:

SELECT username,age FROM imooc_user ORDER BY username, age;

結(jié)果如下:

+----------+-----+
| username | age |
+----------+-----+
| jerry    | 28  |
| mike     | 18  |
| pedro    | 23  |
+----------+-----+

上面的語(yǔ)句中省略了排序方式,我們可以顯示指定排序方式:

SELECT username,age FROM imooc_user ORDER BY username ASC, age ASC;

4.2 例4 降序排序 username、升序排列 age

請(qǐng)書寫 SQL 語(yǔ)句,查詢imooc_user數(shù)據(jù),返回username降序age升序的結(jié)果。

分析:

同上,改變 username 的排序即可。

語(yǔ)句

SELECT username,age FROM imooc_user ORDER BY username DESC, age ASC;

結(jié)果如下:

+----------+-----+
| username | age |
+----------+-----+
| pedro    | 23  |
| mike     | 18  |
| jerry    | 28  |
+----------+-----+

5. 小結(jié)

  • Order By 可以有效讓查詢結(jié)果有序,這對(duì)于數(shù)據(jù)展示來(lái)說(shuō)至關(guān)重要。
  • Order By 對(duì)于多字段的排序支持雖然強(qiáng)大,但是很消耗性能。
  • Order By 對(duì)于字符串的排序是按位(每個(gè)字符)進(jìn)行比較排序的,十分耗時(shí),一般情況下不推薦使用。