mysql 基本函数

mysql执行顺序

from -> where -> group by (having)-> select -> order by -> limit

函数

函数分类:数字函数、字符函数、日期函数、条件函数

大部分系统函数

函数名说明
CONCAT(str0,str1)将两个字段的值拼接在一起
CONCAT_WS(“拼接符”,str0,str1)将两个字段的值使用指定拼接符拼接在一起
GROUP_CONCAT(expr)将指定分组的字段内容拼接在一起
UPPER(str)将字符串包含的英文字符小写转化成大写
LOWER(str)将字符串包含的英文字符大写转化成小写
INITCAP(str)将字符串的首字母变成大写
LENGTH(str)获取字符串的长度
SUBSTR(str FROM pos FOR len)截取字符串,其中 pos 表示其实位置,len 表示结束位置
TRIM(str)去除字符串两边空格
INSTR(str,substr)查找指定字符在字符串的中的位置,其中 substr 表示需要查找的字符,例如 ‘Tom’ 中 ‘T’ 的位置为 1,‘m’ 的位置为 3
LPAD(str,len,padstr)左填充,其中 len,表示字符串总长度,padstr 表示填充的字符
RPAD(str,len,padstr)右填充,其中 len,表示字符串总长度,padstr 表示填充的字符
LEFT(str,len)取一个字符串的前多少位
RIGHT(str,len)取一个字串的后多少位
CEIL(X)向上取整
FLOOR(X)向下取整
MOD(N,M)取余,例如 MOD(age,5),将字段 age 除以 5,除不尽的取余数
POWER(X,Y)幂运算,例如 MOD(age,2),获取字段 age 值的 2 次方的值
NOW()获取当前日期和时间
CURDATE()获取当前日期,不包含时间
CURTIME()获取当前时间,不包含日期
YEAR(now())获取当前的年份
HOUR(NOW())获取当前时间的小时数
MINUTE(now())获取当前时间的分钟数
SECOND(NOW())获取当前时间的秒数
MONTHNAME(now())获取当前日期的英文月份
MONTH(NOW())获取当前日期的数字月份
DATE_ADD(date,INTERVAL expr unit)查询日期的变化,例如 DATE_ADD(‘2020-03-03’,INTERVAL 10 day) 表示 2020-03-03 十天之后的日期
DATEDIFF(expr1,expr2)日期差,例如 DATEDIFF(‘2019-12-29’,‘2019-12-01’) 表示 2019-12-29 距离 2019-12-01 的天数
DATE_FORMAT(date,format)将指定日期转化为自定义格式,例如 DATE_FORMAT(‘2019-12-29’,’%m/%d/%y’) ,其中 %m 表示前面对应的月份,%d 表示前面对应的日期的天数,%y 表示前面对应的年份
STR_TO_DATE(str,format)将指定日期转化为自定义格式,例如 DATE_FORMAT(‘12-29-2019’,’%m/%d/%y’)
DATE_FORMAT(date,format)将指定日期转化为自定义格式,例如 DATE_FORMAT(‘2019/12/29’,’%m/%d/%y’)
MD5(str)对字符串进行 MD5 转换
UNIX_TIMESTAMP()将指定日期转化为时间戳
COUNT()获取查询结果集条数
AVG(expr)获取指定列平均值
SUM(expr)获取指定字段值的总和
MIN(expr)获取指定字段值的最小值
MAX(expr)获取指定字段值的最大值

数字函数

在这里插入图片描述在这里插入图片描述

floor()

强制舍位,向下取整

cell()

强制进位,向上取整

ROUND()

ROUND(column_name,decimals),把数值字段舍入为指定的小数位数。

column_name:必需。要舍入的字段。
decimals:必需。规定要返回的小数位数。如果0,结果将没有小数点或小数部分。

 SELECT ROUND(column_name,decimals) FROM table_name;

字符函数

在这里插入图片描述
在这里插入图片描述

MID()

mid(column_name,start[,length]),从文本字段中提取字符

column_name:必需。要提取字符的字段。
start:必需。规定开始位置(起始值是 1)。
length:可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本。

SELECT MID(column_name,start[,length]) FROM table_name;

SELECT substr(name,1,4) AS ShortTitle FROM Websites;

LENGTH()

length(column_name),返回文本字段中值的长度。

SELECT LENGTH(column_name) FROM table_name;

日期函数

  • MySQL数据库里,两个日期不能直接加减,日期也不能与数字加减

在这里插入图片描述

DATE_FORMAT()

date_foramat(),将指定日期转化为自定义格式

例如:DATE_FORMAT(‘2019-12-29’,’%m/%d/%y’) ,其中 %m 表示前面对应的月份,%d 表示前面对应的日期的天数,%y 表示前面对应的年份

DATE_ADD()

date_add()函数,可以实现日期的偏移计算,而且时间单位灵活

date_add(日期,interval 偏移量 时间单位)

select date_add(NOW(),INTERVAL 15 DAY);
SELECT DATE_ADD(NOW(),INTERVAL -300 MINUTE);

UNIX_TIMESTAMP()

UNIX_TIMESTAMP()将日期转化为UNIX时间戳

SELECT UNIX_TIMESTAMP();

Tips:
UNIX_TIMESTAMP() 函数默认获取当前时间戳,
获取指定日期的时间戳: UNIX_TIMESTAMP(‘2012-12-21’) 的取值为 1356019200。

条件函数

IF()

IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。

SELECT IF(TRUE,'A','B');    -- 输出结果:A
SELECT IF(FALSE,'A','B');   -- 输出结果:B

IFNULL()

IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值。

SELECT IFNULL(NULL,'B');    -- 输出结果:B
SELECT IFNULL('HELLO','B'); -- 输出结果:HELLO

NULLIF()

NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。

SELECT NULLIF('A','A');     -- 输出结果:null
SELECT NULLIF('A','B');     -- 输出结果:A

ISNULL()

ISNULL(expr),如果expr的值为null,则返回1,如果expr1的值不为null,则返回0。

SELECT ISNULL(NULL);        -- 输出结果:1
SELECT ISNULL('HELLO');     -- 输出结果:0

CASE

CASE
	WHEN 表达式 THEN 值1
	WHEN 表达式 THEN 值2
	...
	ELSE 值N
END

UNION

union / union all语法

  • 合并两个或多个 SELECT 语句的结果集
  • UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。
  • UNION 选取不同的值。 UNION ALL 选取重复的值!
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

 SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

EXISTS 运算符

exists 运算符,判断查询子句是否有记录,如果有一条或多条记录存在返回 True,否则返回 False。

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

[not] exists

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值