当前位置:   article > 正文

mysql中提供的函数

mysql中提供的函数

MySQL 是一个功能强大的关系型数据库管理系统,其中包含了丰富的内置函数,用于处理各种数据操作和查询。这些函数可以分为多种类型,包括字符串函数、数值函数、日期和时间函数、聚合函数以及控制流函数。本文将介绍这些常用的 MySQL 函数,帮助您更好地利用 MySQL 进行数据操作和分析。

1.聚合函数

介绍:将一列数据作为一个整体,进行纵向计算 。通常与GROUP BY一起使用。

函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和

语法(不能用在where后):

SELECT 聚合函数(字段列表) FROM 表名 ;
  • 1

注意 : NULL值是不参与所有聚合函数运算的。

2.字符串函数

MySQL中内置了很多字符串函数,常用的几个如下:

函数功能
CONCAT (S1,S2,...Sn)字符串拼接,将S1, S2, …, Sn拼接成一个字符串
LOWER (str)将字符串str全部转为小写
UPPER (str)将字符串str全部转为大写
REPEAT(str,n)重复字符串指定次数。
REVERSE(str)将字符串反转。可用来使用后缀索引时使用此函数。
LPAD (str,n,pad)左填充,用字符串pad对str的左边进行填充,达到n个字符长度
RPAD (str,n,pad)右填充,用字符串pad对str的右边进行填充,达到n个字符长度
LEFT(str, n)从字符串的左边提取指定长度的子串。类似的还有 RIGHT
LENGTH(str)返回字符串的长度。
TRIM(str)去掉字符串头部和尾部的空格,类似的还有 LTRIMRTRIM
INSTR(str,subStr)返回子串在字符串中的位置。
LOCATE(subStr,str,n)INSTR类似,但可以指定起始位置。
REPLACE(str,subStr1,subStr2)替换字符串中的子串。将str中含subStr1的部分替换为subStr2。
SUBSTRING (str, start, len)返回从字符串str从start位置起的len个长度的字符串
ASCII(char)、CHAR(int)返回字符串第一个字符的ASCII值。将ASCII码转换为字符。

3.数值函数

常见的数值函数如下:

函数功能
CELL(x)向上取整,用于将浮点数x向上取整到最接近的整数
FLOOR(x)向下取整,用于将浮点数x向下取整到最接近的整数
MOD(x, y)返回除法余数,即x除以y的余数
RAND()返回一个在0到1之间的随机浮点数
ROUND(x, y)返回四舍五入后的浮点数,保留y位小数
ABS(x)返回x的绝对值。
TRUNCATE(x, d)截断数值x到d位小数。
POWER(x, y)计算x的y次幂。
SQRT(x)返回x的平方根。
EXP(x)返回e的x次幂。
LOG(x)返回x的自然对数(以e为底)。
LOG10(x)返回x的常用对数(以10为底)。
RADIANS(x)将角度x转换为弧度。
DEGREES(x)将弧度x转换为角度。
SIGN(x)返回x的符号:1(正),0(零),-1(负)。
PI()返回圆周率π的值。
GREATEST(x, …)返回参数中的最大值。
LEAST(x, …)返回参数中的最小值。

4.日期函数

常见的日期函数如下:

函数功能
CURDATE()返回当前日期
CURTIME()返回当前时间
NOW()返回当前日期和时间
YEAR(date)获取指定date的年份
MONTH(date)获取指定date的月份
DAY(date)获取指定date的日期
DATE_FORMAT(date, format)按指定格式格式化日期。
DATE_ADD(date, INTERVAL expr type)返回一个日期/时间值加上一个时间间隔expr后的时间值
DATEDIFF(date1, date2)返回起始时间date1和结束时间date2之间的天数

5.流程函数

流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。

函数功能描述示例
IF(condition, true_value, false_value)如果条件condition为真,则返回true_value;否则返回false_valueIF(value, t, f)
IFNULL(expression1, expression2)如果expression1不为空,则返回expression1;否则返回expression2IFNULL(value1, value2)
CASE WHEN [condition] THEN [result] … ELSE [default] END根据一系列条件进行判断,如果条件为真,则返回对应的结果;如果所有条件都不为真,则返回默认值CASE WHEN [val1] THEN [res1] … ELSE [default] END
CASE [expr] WHEN [val1] THEN [res1] … ELSE [default] END如果expr的值等于val1,则返回res1;否则返回default默认值CASE [expr] WHEN [val1] THEN [res1] … ELSE [default] END

注意下面这两个sql是相等的:

CASE WHEN a = 1 THEN [result]ELSE [default] END;
CASE a WHEN 1 THEN [res1]ELSE [default] END
  • 1
  • 2

并且 WHEN THEN 可以有多个:

CASE `subject` WHEN '数学'  THEN score1 WHEN '第二个When' THEN score2 ELSE 0 END
  • 1

在标准SQL中,使用=来进行相等比较,而不是==。MySQL遵循这一标准,因此推荐使用=来保持与其他数据库系统的一致性。

由于流程语句中经常出现条件判断,所以提供如下附录(SQL 中的比较运算符和逻辑运算符)。

比较运算符及其功能

运算符功能
>大于
>=大于或等于
<小于
<=小于或等于
=等于
<>!=不等于
BETWEEN ... AND ...检查值是否在指定范围内(包含边界值)
IN (...)检查值是否在指定的列表中(多选一)
LIKE 占位符使用占位符进行模糊匹配。_ 匹配单个字符,% 匹配任意个字符
IS NULL检查值是否为 NULL
REGEXPRLIKE正则表达式匹配

逻辑运算符及其功能:

运算符功能
AND&&并且 (多个条件同时成立) ,与(逻辑与)
OR||或者 (多个条件任意一个成立) ,或(逻辑或)
NOT!非 (条件不成立) ,非(逻辑非)
XOR异或(逻辑异或)

在 MySQL 中,XOR 运算符可以用来连接两个布尔条件,只有当这两个条件中有且仅有一个为 TRUE 时,结果才为 TRUE。如果两个条件都是 TRUE 或都是 FALSE,结果为 FALSE。在进行其他判断时,除了针对 10 之间返回 1,其他都会返回 0。

在其他编程语言中,异或运算符的符号通常是 ^,但在 SQL 中(特别是 MySQL),你需要使用 XOR 关键字。因为 ^|&一样在 MySQL 中是按位运算。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/904456
推荐阅读
相关标签
  

闽ICP备14008679号