检索出的数据并不是以纯粹的随机顺序显示的。如果不排序,数据一般将以它在底层表中出现的顺序显示。这可以是数据最初添加到表中的顺序。但是,如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响。因此,如果不明确控制的话,不能(也不应该)依赖该排序顺序。关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有意义。

      为了明确地排序用select语句检索出数据,可使用order by子句。order by子句取一个或多个列的名字,据此对输出进行排序。

        

        仅在多个行具有值时才对产品按prod_name进行排序。如果prod_price列中所有的值都是唯一的,则不会按prod_name排序。

        

        数据排序不限于升序排序(从A到Z)。这只是默认的排序顺序,还可以使用order by子句以降序(从Z到A)顺序排序。为了进行降序排序,必须指定desc关键字。

      1. select prod_id, prod_price, prod_name
      2. order by prod_price desc;

        desc关键字只应用到直接位于其前面的列名。

        使用order by和limit组合,找出列中最高或最低的值。

      1. from products
      2. limit 1;