赞
踩
MySQL 是一个功能强大的关系型数据库管理系统,其中包含了丰富的内置函数,用于处理各种数据操作和查询。这些函数可以分为多种类型,包括字符串函数、数值函数、日期和时间函数、聚合函数以及控制流函数。本文将介绍这些常用的 MySQL 函数,帮助您更好地利用 MySQL 进行数据操作和分析。
介绍:将一列数据作为一个整体,进行纵向计算 。通常与GROUP BY一起使用。
函数 | 功能 |
---|---|
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
语法(不能用在where后):
SELECT 聚合函数(字段列表) FROM 表名 ;
注意 : NULL值是不参与所有聚合函数运算的。
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) | 去掉字符串头部和尾部的空格,类似的还有 LTRIM 、RTRIM |
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码转换为字符。 |
常见的数值函数如下:
函数 | 功能 |
---|---|
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, …) | 返回参数中的最小值。 |
常见的日期函数如下:
函数 | 功能 |
---|---|
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之间的天数 |
流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。
函数 | 功能描述 | 示例 |
---|---|---|
IF(condition, true_value, false_value) | 如果条件condition为真,则返回true_value;否则返回false_value | IF(value, t, f) |
IFNULL(expression1, expression2) | 如果expression1不为空,则返回expression1;否则返回expression2 | IFNULL(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
并且 WHEN THEN 可以有多个:
CASE `subject` WHEN '数学' THEN score1 WHEN '第二个When' THEN score2 ELSE 0 END
在标准SQL中,使用
=
来进行相等比较,而不是==
。MySQL遵循这一标准,因此推荐使用=
来保持与其他数据库系统的一致性。
由于流程语句中经常出现条件判断,所以提供如下附录(SQL 中的比较运算符和逻辑运算符)。
比较运算符及其功能:
运算符 | 功能 |
---|---|
> | 大于 |
>= | 大于或等于 |
< | 小于 |
<= | 小于或等于 |
= | 等于 |
<> 或 != | 不等于 |
BETWEEN ... AND ... | 检查值是否在指定范围内(包含边界值) |
IN (...) | 检查值是否在指定的列表中(多选一) |
LIKE 占位符 | 使用占位符进行模糊匹配。_ 匹配单个字符,% 匹配任意个字符 |
IS NULL | 检查值是否为 NULL |
REGEXP 或 RLIKE | 正则表达式匹配 |
逻辑运算符及其功能:
运算符 | 功能 |
---|---|
AND 或 && | 并且 (多个条件同时成立) ,与(逻辑与) |
OR 或 || | 或者 (多个条件任意一个成立) ,或(逻辑或) |
NOT 或 ! | 非 (条件不成立) ,非(逻辑非) |
XOR | 异或(逻辑异或) |
在 MySQL 中,XOR
运算符可以用来连接两个布尔条件,只有当这两个条件中有且仅有一个为 TRUE
时,结果才为 TRUE
。如果两个条件都是 TRUE
或都是 FALSE
,结果为 FALSE
。在进行其他判断时,除了针对 1
和 0
之间返回 1
,其他都会返回 0。
在其他编程语言中,异或运算符的符号通常是 ^
,但在 SQL 中(特别是 MySQL),你需要使用 XOR
关键字。因为 ^
和|
、&
一样在 MySQL 中是按位运算。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。