SQL数据操作基础(初级)3
时间:2007-12-23 来源:不详 作者:迈克DB
au_lname
…………………………………….
White
Green
Carson
O’Leary
Straight
…
(23 row(s) affected)
看一列没有特定顺序的名字是很不方便的。假如把这些名字按字母顺序排列,读起来就会轻易得多。通过使用ORDER BY子句,你可
以强制一个查询结果按升序排列,就像这样:
SELECT au_lname FROM authors ORDER BY au_lname
当这个SELECT语句执行时,作者名字的显示将按字母顺序排列。ORDER BY子句将作者名字按升序排列。
你也可以同时对多个列使用ORDER BY子句。例如,假如你想同时按升序显示字段au_lname和字段au_fname,你需要对两个字段都
进行排序:
SELECT au_lname,au_fname FROM authors ORDER BY au_lname ,au_fname
这个查询首先把结果按au_lname字段进行排序,然后按字段au_fname排序。记录将按如下的顺序取出:
au_lname au_fname
…………………………………………………………………….
Bennet Abraham
Ringer Albert
Ringer Anne
Smith Meander
…
(23 row(s) affected)
注重有两个作者有相同的名字Ringer。名为Albert Ringer的作者出现名为Anne Ringer的作者之前,这是因为姓Albert按字母顺
织梦内容管理系统
序应排在姓Anne之前。
假如你想把查询结果按相反的顺序排列,你可以使用要害字DESC。要害字DESC把查询结果按降序排列,如下例所示:
SELECT au_lname,au_fname FROM authors
WHERE au_lname=”Ringer” ORDER BY au_lname ,au_fname DESC
这个查询从表authors中取出所有名字为Ringer的作者记录。ORDER BY子句根据作者的名字和姓,将查询结果按降序排列。结果是
这样的:
au_lname au_fname
……………………………………………………………………………………….
Ringer Anne
Ringer Albert
(2 row(s) affectec)
注重在这个表中,姓Anne出现在姓Albert之前。作者名字按降序显示。
你也可以按数值型字段对一个查询结果进行排序。例如,假如你想按降序取出所有书的价格,你可以使用如下的SQL查询:
SELECT price FROM titles ORDER BY price DESC
这个SELECT语句从表中取出所有书的价格,显示结果时,价格低的书先显示,价格高的书后显示。
警告:
不是非凡需要时,不要对查询结果进行排序,因为服务器完成这项工作要费些力气。这意味着带有ORDER BY 子句的SELECT语句执
行起来比一般的SELECT语句花的时间长。 dedecms.com
取出互不相同的记录
一个表有可能在同一列中有重复的值。例如,数据库pubs的表authors中有两个作者的名字是Ringer。假如你从这个表中取出所有
的名字,名字Ringer将会显示两次。
在特定情况下,你可能只有爱好从一个表中取出互不相同的值。假如一个字段有重复的值,你也许希望每个值只被选取一次,你可
以使用要害字DISTINCT来做到这一点:
SELCET DISTINCT au_lname FROM authors WHERE au_lname="Ringer"
当这个SELECT语句执行时,只返回一个记录。通过在SELECT语句中包含要害字DISTINCT,你可以删除所有重复的值。例如,假设
有一个关于新闻组信息发布的表,你想取出所有曾在这个新闻组中发布信息的人的名字,那么你可以使用要害字DISTINCT。每个用
户的名字只取一次——尽管有的用户发布了不止一篇信息。
警告:
如同ORDER BY子句一样,强制服务器返回互不相同的值也会增加运行开销。福气不得不花费一些时间来完成这项工作。因此,不是
必须的时候不要使用要害字DISTINCT。
创建新表
前面说过,数据库中的所有数据存储在表中。数据表包括行和列。列决定了表中数据的类型。行包含了实际的数据。
上一篇:SQL数据操作基础(初级)4 下一篇:SQL数据操作基础(初级)2
文章评论
共有位Admini5网友发表了评论 查看完整内容