11.1 函数
大多数SQL支持以下几类型的函数:
- 文本处理函数
- 数值处理函数
- 日期处理函数
- 系统函数
11.2 文本函数
大小写转换
使用Upper()
和Lower()
函数可以对字段的值进行大小写转换
#大写
SELECT vend_name, Upper(vend_name) AS vend_name_upcase
FROM vendors
ORDER BY vend_name;
#小写
SELECT vend_name, Lower(vend_name) AS vend_name_upcase
FROM vendors
ORDER BY vend_name;
拼写纠正
使用Soundex
可以对字段中发音不对的值进行发音类似的匹配:
SELECT cust_name, cust_contact
FROm customers
WHERE Soundex(cust_contact) = Soundex('Y Lie');
11.3 数值处理函数
数值处理函数仅处理数值数据。这些函数一般主要用于代数、三角 或几何运算,因此没有串或日期—时间处理函数的使用那么频繁;并且数值函数是最一致最统一的函数:
- 所有函数都时首字母大写
- Abs():求绝对值
- Exp():求指数值
- Mod():求余
- Sqrt():求平方根
- Sum():求和
11.4 日期处理函数
日期和时间采用相应的数据类型和特殊的格式存储,以便能快速和有效地排序或过滤,并且节省物理存储空间:
- Date()(除此之外还有Month、Day、Hour的等):返回日期时间的日期部分(或对应部分)
- Now():返回当前日期和时间
- Year():返回日期的年份部分
在使用日期值时,需要注意的是:
- 日期必须为「yyyy-mm-dd」格式才能进行操作
- 虽然MySQL支持2位数年份,但是使用完安政的4位数字年份更可靠
如果不先考虑日期值的格式问题就进行操作检索,那么很有可能导致检索失败;最稳妥的办法就是使用相应部分的函数来对日期值字段进行读取:
#检索失败
SELECT cust_id, order_num
FROM orders
WHERE order_date = '2005-09-01';
#使用正则表达式检索
SELECT cust_id, order_num
FROM orders
WHERE Date(order_date) REGEXP '2005-09-[01-30]'
网友评论