函数带来的问题:可移植性的缺失
几乎所有DBMS都支持SQL函数,但每一个DBMS都有特定的函数。虽然所有类型的函数一般都可以在每个DBMS中使用,但它们的名称和语法可能很不同。
是否使用函数?如果决定使用函数,需要做好注释,以便维护人员能确切知道这些SQL代码的含义。
使用函数
函数主要有5类:
- 文本函数
- 数值函数
- 日期和时间函数
- 格式化函数
- 系统函数
文本函数
- LEFT()
- LENGTH()
- LOWER()
- LTRIM()
- RIGHT()
- RTRIM()
- SUBSTR()/SUBSTRING()
- SOUNDEX()
- UPPER()
特殊说明:SOUNDEX
SOUNDEX将所选参数转换为字母语音描述,能对字符串进行发音比较而不是文本比较。
PostgreSQLz不支持SOUNDEX,SQLite在创建时使用了SQLITE_SOUNDEX才可用。
1
2
日期和时间函数
可移植性最差,需要查阅具体DBMS的技术文档
数值处理函数
最一致、最统一,但使用不够频繁
- ABS()
- COS()
- EXP()
- PI()
- SIN()
- SQRT()
- TAN()
小结
- 介绍如何使用SQL的数据处理函数
- 函数在SQL实现中很不一致,需要参考DBMS具体的技术文档
挑战题