SQL包含一系列内置函数,这些函数可以在查询中使用,以执行各种计算和数据处理任务。所谓函数, 就是输入某一值得到相应输出结果的功能,输入值称为参数(parameter), 输出值称为返回值。
根据用途,函数可以大致分为算术函数、字符串函数、日期函数、转换函数和聚合函数。
函数大致可以分为以下几种:
- 算术函数(用来进行数值计算的函数)
- 字符串函数(用来进行字符串操作的函数)
- 日期函数(用来进行日期操作的函数)
- 转换函数(用来转换数据类型和值的函数)
- 聚合函数(用来进行数据聚合的函数)
算术函数是最基本的函数;NUMERIC 是大多数 DBMS 都支持的一种数据类型,通过 NUMBERIC
在主要的DBMS的函数中,数值函数是最具一致性的函数。
1、ABS()返回函数绝对值
ABS 函数的参数为 NULL 时,结果也是 NULL。并非只有 ABS 函数如此,其实绝大多数函数对于 NULL 都返回 NULL。但是转换函数中的COALESCE函数除外。
2、COS()返回角度的余铉
3、EXP()返回数的指数值
4、MOD()返回除操作的余数
MOD 是计算除法余数(求余)的函数,是 modulo 的缩写。格式:MOD(被除数,除数)。
因为小数计算中并没有余数的概念,所以只能对整数类型的列使用 MOD 函数。注意:主流的 DBMS 都支持 MOD 函数,只有SQL Server 不支持该函数。
5、ROUND()四舍五入
ROUND(对象数值,保留小数的位数)
6、Rand()返回一个随机数
7、Sqrt()返回一个数的平方根
8、pi()返回圆周率
1、RTrim()函数去除列值右边空格
2、LTrim()去掉串左边的空格
3、Upper()函数将文本转换为大写
4、Lower()将串转换为小写
LOWER 函数 只能针对英文字母使用,它会将参数中的字符串全都转换为小写。
5、Left()返回串左边的字符
6、Right()返回串右边的字符
7、Length()返回串的长度;用于计算字符串中包含多少个字符时
SQL Server使用LEN函数来计算字符串的长度。
8、Locate()找出串的一个子串
9、SubString()返回子串的字符;字符串的截取
SUBSTRING (对象字符串 FROM 截取的起始位置 FOR 截取的字符数)。截取的起始位置从字符串最左侧开始计算
SELECT str1,SUBSTRING(str1 FROM 3 FOR 2) AS sub_str
FROM Table;
10、|| -- 拼接函数
通过由两条并列的竖线变换而成的“||” 函数来实现字符串的拼接。注意,|| 函数在 SQL Server 和 MySQL 中无 法使用。SQL Server使用“+”运算符(函数)来连接字符串。
MySQL使用CONCAT函数来完成字符串的拼接。
12、REPLACE-----字符串的替换
格式:REPLACE(对象字符串,替换前的字符串,替换后的字符串)
SELECT str1, str2, str3,
REPLACE(str1, str2, str3) AS rep_str
FROM SampleStr;
Soundex是一个将任何文本串转换为描述其语音表示的字母数字模式的算法
1、AddDate()增加一个日期
2、AddTime()增加一个时间
3、CURRENT_DATA 返回当前日期
CURRENT_DATE 函数 能够返回 SQL 执行的日期,也就是该函数执行时的日期。由于没有参数,因此无需使用括号。SELECT CURRENT_DATE;SELECT CURRENT_TIME; 当前时间SELECT CURRENT_TIMESTAMP;返回当前日期和时间SELECT NOW();返回当前日期和时间SELECT Date(NOW());返回当前日期
4、EXTRACT——截取日期元素
用 EXTRACT 函数 可以截取出日期数据中的一部分,例如“年” ,“月”,“小时”,“秒”等。 该函数的返回值并不是日期类型而是数值类型。语法格式:EXTRACT( 日期元素 FROM 日期 )
SELECT CURRENT_TIMESTAMP AS 当前日期,
EXTRACT(YEAR FROM CURRENT_TIMESTAMP) AS year,
5、DateDiff()计算两个日期之差
DateDiff() 函数通常用于计算两个日期之间的时间间隔,并返回这个间隔的数量。
SELECT DateDiff('year', '2020-01-01', '2023-01-01');
6、Date_Format()返回一个格式化的日期或时间
运行在行组上,计算和返回单个值的函数
1、AVG()返回某列平均值
2、COUNT()返回某列行数
3、MAX()返回某列最大值
4、MIN()返回某列最小值
5、SUM()返回某列值之和
这些函数用于根据条件执行计算或返回值。例如,IF函数可以根据条件返回两个值之一,CASE表达式可以根据条件执行不同的操作。
1、IFNULL函数--判断是否为空
主要用于处理NULL 值。这个函数接受两个参数:第一个参数是可能为 NULL
的值,第二个参数是当第一个参数为 NULL时返回的值。语法格式:IFNULL(expression1, expression2)
SELECT name, IFNULL(salary, 0) AS adjusted_salary
FROM employees;
2、IF函数--判断,流程控制
SQL中的IF
函数用于在查询中执行条件逻辑。语法格式IF(condition, true_value, false_value):
如果条件为真,返回value_if_true,否则返回value_if_false。
SELECT name, age, IF(age >= 18, 'Adult', 'Minor') AS age_group
FROM users;
3、CASE函数--搜索语句
在SQL中,CASE函数用于执行条件逻辑,它允许你根据条件选择不同的值或执行不同的操作。CASE函数可以在SELECT语句、UPDATE语句、DELETE语句等查询中广泛使用。
SELECT
CASE grade
WHEN 'A' THEN 'Excellent'
WHEN 'B' THEN 'Good'
WHEN 'C' THEN 'Fair'
ELSE 'Poor'
END AS result
FROM students;
1、CAST——类型转换
2、COALESCE——将NULL转换为其他值
SELECT COALESCE(NULL, 1) AS col_1,
COALESCE(NULL, 'test', NULL) AS col_2,
COALESCE(NULL, NULL, '2009-11-01') AS col_3;