=============================================================
标题:SQL语句练习-使用函数
备注:SQL SERVER 2000
日期:2011.4.5
姓名:朱铭雷
=============================================================
SQL支持利用函数来处理数据,这些函数也都是非常高效的。不过,对于不同的DBMS,它们可能支持不同的函数,这会给SQL代码的可移植性带来问题。
文本处理函数
UPPER函数将文本字串转换为大写。
常用的文本处理函数
SOUNDEX函数
考虑了类似的发音字符和音节,能对串进行发音比较而不是字母比较。
WHERE字句使用SOUNDEX函数转换cust_contact列值和搜索串为它们的SOUNDEX值。因为Michael Green和Michelle Green发音相似,所以它们的SOUNDEX值匹配,因此WHERE字句正确的过滤出了所需数据。
日期和时间处理函数
在各个DBMS中很不一致,可移植性最差。对于特定的DBMS,需要查询相应的文档来确定它具体支持的时间日期函数。
DATEPART函数返回日期的某一部分,第一个参数设置为yy,表示从order_date列中返回年份。上述代码检索2004年的所有订单。这是在SQL SERVER 2000上测试的,对于其他的DBMS,可能不支持,或者形式不一样,或者参数不同。
DBMS通常会提供很多很有价值的日期时间函数,比如比较日期,执行基于日期的运算,选择日期格式等函数,这要查阅相应DBMS的文档。
数值处理函数
聚集函数
用于汇总数据并做相应计算
AVG函数
AVG函数用于求取某列的平均值,上述语句返回供应商DLL01的产品的平均价格。如果去掉最后的WHERE子句,则返回所有产品的平均价格。
COUNT函数
对表中的行数计数
COUNT(*)对所有行计数,不管表列中是否包含控制NULL。
只对cust_email列中有值的行计数。
MAX函数
返回指定列中的最大值,忽略列值为NULL的行。
返回Products表中最贵的物品的价格。
MIN函数
返回指定列中的最小值,忽略列值为NULL的行。
返回Products表中最便宜的物品的价格。
SUM函数
返回指定列值的和,忽略列值为NULL的行。
检索所订购物品的总数。
返回order_num为20005的总的订单金额。
DISTINCT参数
聚集不同值。
返回特定供应商提供的产品的平均价格,但此平均值只考虑各个不同的价格。
组合聚集函数
SELECT语句可以根据需要包含多个聚集函数。
SQL聚集函数表