This Domain(Admin5.com) is for Sale:

My SQL数据库实用技术(04)

时间:2007-12-23  来源:不详  作者:迈克DB


3. 对查询结果进行排序
有时我们注重到,在一个表装入初始数据后,对其发布一条SELECT * FROM tbl_name查询,检索出的行与这些行被插入的顺序是相同的。但不要认为这种情况是有规律的。假如在初始装入表后进行了行的删除和插入,就会发现服务器返回表的行次序被改变了。(删除记录在表中留下了未使用的“空位”,MySQL 在以后插入新记录时将会试图对其填补。)缺省时,假如选择了行,服务器对返回行的次序不作任何保证。为了对行进行排序,可
使用ORDER BY 子句:

在ORDER BY 子句中,可在列名之后利用ASC 或DESC 要害字指定排序是按该列值的升序或降序进行的。例如,为了按倒序(降序)名排列总统名,可如下使用D E S C:

假如在ORDER BY 子句中,对某个列名既不指定ASC 又不指定D E S C,则缺省的次序为升序。在对可能包含NULL 值的列进行排序时,假如是升序排序, NULL 值出现在最前面,假如是按降序排序,NULL 值出现在最后。
查询结果可在多个列上进行排序,而每个列的升序或降序可以互相独立。下面的查询从president 表中检索行,并按出生的州降序、在每个州中再按姓氏的升序对检索结果进行排序:

织梦内容管理系统



4. 限制查询结果假如一个查询返回许多行,但您只想看其中的几行,则可以利用LIMIT 子句,非凡是与ORDER BY 子句结合时更是如此。MySQL 答应限制一个查询的输出为前n 行。下面的查询选择了5 位出生日期最早的总统:

假如利用ORDER BY birth DESC 按降序排序,将得到5 位最晚出生的总统。LIMIT 也可以从查询结果中取出中间部分。为了做到这一点,必须指定两个值。第一个值为结果中希望看到的第一个记录(第一个结果记录的编号为0 而不是1)。第二个值为希望看到的记录个数。下面的查询类似于前面那个查询,但只显示从第11 行开始的5 个记录:

自MySQL 3.23.2 以来,可按照一个公式来排序查询结果。例如,利用ORDER BYRAND( ) 与LIMIT 结合,从president 表中随机抽取一个记录:


5. 计算并命名输出的列值 dedecms.com
前面的多数查询通过从表中检索值已经产生了输出结果。MySQL 还答应作为一个公式的结果来计算输出列的值。表达式可以简单也可以复杂。下面的查询求一个简单表达式的值(常量)以及一个涉及几个算术运算符和两个函数调用的较复杂的表达式的值:

此查询把名和姓连接起来,中间间隔一个空格,将总统名形成一个单一字符串,而且将出生城市和州连接在一起,中间隔一个逗号,形成出生地。
在利用表达式来计算列值时,此表达式被用作列标题。假如表达式很长(如前面的一些查询样例中那样),那么可能会出现一个很宽的列。为了处理这种情况,此列可利用AS name结构来重新命名标题。这样的名称为列别名。用这种方法可使上面的输出更有意义,如下所示:

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息