像普通编程语言一样,SQL支持使用函数处理数据
函数使用若干字段名/常量值做为参数(参数数量不固定,可为空,甚至有的函数的参数个数可变)
几乎所有函数都有返回值,返回值即为函数的数据处理结果
常见典型函数
聚合函数:对一组数据进行统计计算
数学函数:进行数值处理
日期函数:进行日期处理
字符串函数:进行字符串处理
计算字符串长度的函数:该函数接受一个字符串类型的字段值做为参数,返回值为这个字符串的长度。
length(MYSQL、Oracle、DB2中)
len(MSSQLServer中)
如:计算每一个名称不为空的员工的名字以及名字的长度:
MYSQL、Oracle、DB2中:
SELECT FName, LENGTH(FName) AS namelength
FROM T_Employee WHERE FName IS NOT NULL
MSSQLServer中:
SELECT FName, LEN(FName) AS namelength
FROM T_Employee WHERE FName IS NOT NULL
执行结果:
FName namelength
Tom 3
Jerry 5
Jane 4
Tina 4
Smith 5
John 4
Kerry 5
Stone 5
计算提供了取得字符串的子串的函数:该函数接受三个参数
第一个参数为要取的主字符串
第二个参数为字串的起始位置(从1开始计数)
第三个参数为字串的长度
MYSQL、MSSQLServer中:SUBSTRING
Oracle、DB2中:SUBSTR
如:取得每一个名称不为空的员工的名字以及名字中从第二个字符开始、长度为3的字串:
MYSQL、MSSQLServer:
SELECT FName, SUBSTRING(FName,2,3)
FROM T_Employee WHERE FName IS NOT NULL
Oracle、DB2:
SELECT FName, SUBSTR(FName,2,3)
FROM T_Employee WHERE FName IS NOT NULL
执行结果:
FName namelength
Tom om
Jerry er
Jane an
Tina in
Smith mi
John oh
Kerry er
Stone to
多个函数还可以嵌套使用,主流数据库提供了计算正弦函数值的函数SIN,计算绝对值的函数ABS,它们都接受一个数值类型的参数。
如:取得每个员工的姓名、年龄、年龄的正弦函数值以及年龄的正弦函数值的绝对值,其中计算“年龄的正弦函数值的绝对值”时就要使用嵌套函数,SQL语句如下:
SELECT FName,FAge, SIN(FAge) , ABS(SIN(FAge)) FROM T_Employee