目录
8.1 函数
与几乎所有DBMS都等同地支持SQL语句(如SELECT)不同,每一个DBMS都有特定的函数。事
实上,只有少数几个函数被所有主要的DBMS等同地支持。如:
可以看到,与SQL语句不一样,SQL函数不是可移植的。这表示为特定SQL实现编写的代码在其
他实现中可能不正常。
可移植(portable):所编写的代码可以在多个系统上运行。
因此,如果你决定使用函数,应该保证做好代码注释,以便以后你(或其他人)能确切地知道所编写的SQL代码的含义。
8.2 使用函数
8.2.1 文本处理函数
RTRIM()函数
去除列值右边的空格。
如:
因为数据格式可能是多个字符,而实际的数据只有少个字符,那么该数据右边就会有空格。比如,在没有使用RTRIM()函数之前,是这样的结果:
而使用了RTRIM()函数之后,输出为:
可见没有了空格。
与此类似的还有:
LTRIM()(去掉字符串左边的空格)以及TRIM()(去掉字符串左右两边的空格)
UPPER()函数
UPPER()将文本转换为大写。
常用的文本处理函数
SOUNDEX()
SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX考虑了类似的发音字符和音节,使得能对字符串进行发音比较而不是字母比较。虽然SOUNDEX不是SQL概念,但多数DBMS都提供对SOUNDEX的支持。
下面给出一个使用SOUNDEX()函数的例子。
Customers表中有一个顾客Kids Place,其联系名为Michelle Green。但如果这是错误的输入,此联系名实际上应该是Michael Green,该怎么办呢?显然,按正确的联系名搜索不会返回数据,如下所示:
现在试一下使用SOUNDEX()函数进行搜索,它匹配所有发音类似于Michael Green的联系名:
8.2.2 日期和时间处理函数
日期和时间采用相应的数据类型存储在表中,每种DBMS都有自己的特殊形式。
且日期和时间函数在各种DBMS中很不一致,可移植性很差。
YEAR()
MySQL用户可使用名为YEAR()的函数从日期中提取年份:
8.2.3 常用的数值处理函数
在主要DBMS的函数中,数值函数是最一致、最统一的函数。
常用数值处理函数: