网络编程
位置:首页>> 网络编程>> 数据库>> 教你轻松掌握常用的子句、关键词和函数(2)

教你轻松掌握常用的子句、关键词和函数(2)

作者:yashi  发布时间:2009-01-19 13:34:00 

标签:

在按照定义的列名排序以后,大多数数据库随后将按照数据表内的第一列排序然后顺序向右再排序。具体的实现各有变化,因此,如果排序在应用中比较重要那么你应该明确地定义所要排序的列。

另外一值得注意的问题是,采用ORDER BY子句(以及WHERE子句),你正在用来排序结果的数据列并不一定得是返回结果集合的一部分。只要所有引用的列都在数据表内存在则下例完全有效:

SELECT company, first_name, net_amount FROM Sales
ORDER BY start_date, last_name;
 
DISTINCT返回不重复结果

DISTINCT关键词只返回结果集合内不重复的数据行。例如,有时你可能需要找出Sales表内的公司,但是你又不想看见每个条目。于是你可以用DISTINCT对应每一公司名返回一行数据:

SELECT DISTINCT company FROM Sales;

在使用DISTINCT时,它适用于所有的请求列。如果你打算列出表内的所有销售人员和他们所代表的公司而非每一销售记录,那么你可以使用下列语句。注意,这样操作还可能返回同一公司的若干条目等等。

SELECT DISTINCT company, last_name, first_name FROM Sales;
 
你还可以在对结果缩小范围和进行排序时结合SELECT语句使用DISTINCT。为了确定显示的内容,数据库首先会证实精练的请求是否匹配数据行,然后应用DISTINCT功能。在全部结果集合都得以确定之后即处理ORDER BY子句。如下例所示,只有net_amount大于100的数据行才被返回。由于DISTINCT保留遇见的第1个匹配查询条件的数据行而丢弃其他匹配行,所以ORDER BY语句所引用的net_amount看起来就好象产生了随机的结果。

SELECT DISTINCT company, last_name,
first_name FROM Sales WHERE
net_amount > 100 ORDER BY company,
net_amount;

函数应用逻辑

返回单一值的函数称做聚集函数(aggregate function)。通过应用程序访问下列聚集函数的结果时,包含结果的“字段名”就是你所使用的实际函数。例如,在分析你的数据库结果时,结果数组的键值可能如下所示:

$keyname = “COUNT(*)”;
$resultkey = “AVG(net_amount)”;

COUNT

COUNT函数计算出结果集合中的数据行数。和其他函数一样它接受一个参数。以下的基本示例能告诉你数据表内的行数:SELECT COUNT(*) FROM Sales;

你也可以用它来计算任何结果集合中的行数。

SELECT COUNT(*) FROM Sales WHERE net_amount > 100;

如果你想看看某特定列有多少行包含非空值,那你不妨对该列使用COUNT函数。注意,除非数据库设置为字段为空时缺省填充NULL否则将返回表内数据行的总数。另外,列出的列在超出一个的情况下会引起错误。

SELECT COUNT(company) FROM Sales;

COUNT还可以用来计算DISTINCT结果集合中的行数。

SELECT COUNT(DISTINCT company, last_name) FROM Sales;
 
COUNT语句通常用在程序中确定FOR循环的循环次数。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com