数据处理函数
有时从数据库表中获取到的数据须要进行一些处理。
如将小写字母替换为对应的大写字母。这个处理过程能够在客户机上进行。也能够在数据库上进行。
数据库上进行会更高效。数据库中有对应的数据处理函数来处理这些数据,可是在SQL中使用特殊的数据处理函数会减少其可移植性。不同的DBMS系统,其数据处理函数不同。
大多数的SQL支持下面类型的函数
- 用于处理文本串的函数,如删除、填充值、转换大写和小写;
- 用于在数值数据上进行算术操作的函数。
- 用于处理日期和时间值并从这些值中提取特殊成分,如两个日期仅仅差的函数;
- 返回DBMS正在使用的特殊信息的系统函数,如返回用户登录,检查版本号;
文本处理函数
样例:将某一列字符转换为大写字符
经常使用文本处理函数
函数 | 说明 |
Left() | 返回串左边的字符 |
Length() | 返回串的长度 |
Locate() | 找出串的一个子串 |
Lower() | 将串转换为小写 |
LTrim() | 去掉串左边的空格 |
Right() | 返回串右边的字符 |
RTrim() | 去掉串右边的空格 |
Soundex() | 返回串的SOUNDEX值 |
SubString() | 返回子串的字符 |
Upper() | 将串转换为大写 |
Soundex()函数。找出发音类似的串。如因为拼写错误,在表中记录了发音相似的名字。这时假设使用LIKE或者其它的匹配搜索并不高效。
使用SoundEX()会方便非常多。
例如以下样例。真是名字为 Y.Lee,可是表中存放的名字为Y.Lie,假设使用匹配搜索会发现搜索不到,这时能够使用SoundEX()函数:
日期和时间处理函数
经常使用日期和时间处理函数
函数 | 说明 |
AddDate() | 添加一个日期(天、周) |
AddTime() | 添加一个时间(时。分) |
CurDate() | 返回当前日期 |
CurTime() | 返回当前时间 |
Date() | 返回日期时间的日期部分 |
DateDiff() | 计算两个日期之差 |
Date_Add() | 高度灵活的日期计算函数 |
Date_Format | 返回一个格式化的日期或字符串 |
Day() | 返回一个日期的天数部分 |
DayOfWeek() | 对于一个日期返回相应的星期几 |
Hour() | 返回一个时间的小时部分 |
Minute() | 返回一个时间的分钟部分 |
Month() | 返回一个时间的月份部分 |
Now() | 返回当前日期 |
Second() | 返回一个时间的秒部分 |
Time() | 返回一个日期时间的时间部分 |
Year() | 返回一个日期的年份部分 |
简单的时间对照:
可是假设order_date后面跟的有时间,那么上面的SQL语句将匹配不出来。因此我们能够使用日期函数,仅比較表中的日期,而忽略时间:
搜索出一个月的订单;
可是有时不想去算这个月究竟有多少天,则能够实现例如以下:
数值处理函数
数值处理函数仅处理数值数据。这些函数一般用于代数、三角或者几何运算。
经常使用数值处理函数例如以下
函数 | 说明 |
Abs() | 返回一个数的绝对值 |
Cos() | 返回一个角度的余弦 |
Exp() | 返回一个数的指数值 |
Mod() | 返回除操作的余数 |
Pi() | 返回圆周率 |
Rand() | 返回一个随机数 |
Sin() | 返回一个角度的正弦 |
Sqrt() | 返回一个数的平方根 |
Tan() | 返回一个数的正切 |
以下是一个正切的样例: