关系数据库设计理论认为:如果没有明确规定排序,则检索出的顺序是没有意义的。
因此我们之前用SELECT…FROM…;来检索数据,得出的数据的顺序是没有意义的。
那么怎么对检索出的数据进行排序呢?
我们用ORDER BY 子句
SELECT prod_name
FROM products
ORDER BY prod_name; #按照prod_name进行排序
当然,prod_name中也会有相同数据出现的情况,因此,我们也可以指定多个列来进行排序,第一列有相同的就再比较第二列
SELECT prod_name
FROM products
ORDER BY prod_name, prod_id; #再加个prod_id进行排序
如果prod_name内的数据都是唯一的,那么也就用不到prod_id排序了
说到排序,当然会有升序和降序的分类
ORDER BY 默认的是升序(数值—>A–>Z)
降序的话要加DESC (Z—>A)
无序
SELECT prod_name
FROM prodcuts;
升序
SELECT prod_name
FROM products
ORDER BY prod_name;
降序
SELECT prod_name
FROM products
ORDER BY prod_name DESC;
如果按多列进行排序,DESC只会应用到它前面的那一列
SELECT prod_name, prod_price
FROM products
ORDER BY prod_price DESC, prod_name; #DESC只会对prod_price降序, prod_name依然按默认的升序显示
现在我们就可以用ORDER BY 和 LIMIT组合,来选出最贵的产品了
SELECT prod_name, prod_price
FROM products
ORDER BY prod_price DESC
LIMIT 1;
注意顺序:ORDER BY 在FROM后,在LIMIT 前