第五章——排序检索数据(MYSQL必知必会)

排序数据
在没有排序的条件下用SELECT检索的数据并不是以纯粹的随机顺序显示的。如果不排序,数据一般将以它在底层表中出现的顺序显示。可以是数据最初添加到表中的顺序。但若数据后来进行过更新或者删除,则此顺序将受到MYSQL重用回收存储空间的影响。关系数据库设计理论认为,如果不明确排序顺序,则不应该假定检索出的数据的顺序有意义。

字句:SQL语句由字句构成,有些子句是必需的,而有些是可选的。一个子句通常有一个关键字和所提供的数据组成。例如SELECT语句中的FROM字句。

排序的用SELECT语句检索出数据,也是用ORDER BY字句。ORDER BY子句去一个或者多个列的名字。

单个:

SELECT ID 
FROM table_name1
ORDER BY ID;

根据ID排序显示。

多个:

SELECT ID,PRICE
FROM table_name1
FROM BY ID,PRICE;

先按照ID排序,然后再按照价格排序。
理解多列排序时,排序按照所规定的顺序进行。但是要注意的是,先按照ID的顺序排序,然后仅在具有相同的ID值的记录中再根据PRICE再排序,要注意大前提是ID相同时再根据PRICE排序,如果ID都不同,那就没有PRICE排序的必要了。

制定排序方向
不通过关键字制定排序方向时,默认升序。若想降序排序,则需要添加关键词 DESC,升序也可加关键字 ASC。

SELECT ID 
FROM table_name1
ORDER BY ID [DESC/ASC];

当若想多列排序时,比如最贵的排在前面:

SELECT ID,NAME,PRICE
FROM table_name1
ORDER BY PRICE DESC,ID;

DESC关键字只应用到直接位于其前面的列名。所以上述例句中,只对PRICE进行降序排列,ID还是默认的升序。

区分大小写和排序顺序
对于大小写的顺序,比如a与A,这就得取决于数据库是如何设置的了。在字典排序中,A视为与a相同,这是大多数MYSQL数据库的默认行为,但是,许多数据库管理员能够在需要时改变这种行为。
这里,关键问题是,如果确实需要改变这种排序顺序,用简单的ORDER BY子句是做不到的,必须请求数据库管理员的帮助。

使用ORDER BY 和LIMIT的组合
这种组合可以找出列中的最高或最低的值。

SELECT PRICE
FROM table_name1
ORDER BY PRICE
LIMIT 1;

这样就找出了价格最低的值了。

你可能感兴趣的:(数据库)