MySQL 常见函数

函数好处:

隐藏实现功能。

提高代码的重用性。

 

函数名(实参列表)

 

分类

单行函数

字符函数、数学函数、日期函数、其他函数、流程控制函数

分组函数:功能做统计,又称聚合函数、统计函数、组函数

 

字符函数:

length 获取参数值的字节个数

# 3 字母 1字节
SELECT LENGTH('kkk');
# 6 中文 utf8 3字节 / GBK 2字节
SELECT LENGTH('看kkk');

# 查看当前数据库 字符集
SHOW VARIABLES LIKE '%char%';

concat函数

upper 大写、 lower 小写

# 函数可以嵌套使用 TANGzengping
SELECT CONCAT(UPPER(firstname),LOWER(lastname)) AS fullname FROM USER;

substring(或者简写 substr)

# zengping 第6位开始,截取后续所有。
SELECT SUBSTR('i am zengping',6);

# zeng 第6位开始,截取4个字符长度  注意:字符与字节不一样,只有length函数是字节。
SELECT SUBSTR('i am zengping',6,4);

instr返回子串第一次出现的索引,如找不到返回0

# 3 返回第一个匹配的字符的下标
SELECT INSTR('i am zengping,i am king','am');

# 0 找不到返回0
SELECT INSTR('i am zengping,i am king','ami');

trim去前后空格 或 特定字符

# a  a
SELECT TRIM('   a  a   ');

# kak
SELECT TRIM('a' FROM 'aaakakaaa');

#  aaakakaaa 
SELECT TRIM('a' FROM ' aaakakaaa ');

lpad/rpad 用指定的字符实现左/右填充到指定长度

# *abcd
SELECT LPAD('abcd',5,'*');

# abc
SELECT LPAD('abcd',3,'*');

replace 替换

# abbbd
SELECT REPLACE('abccd','c','b');

数学函数

round:四舍五入

#1
SELECT ROUND(1.45);
#-1
SELECT ROUND(-1.45);
#1.46
SELECT ROUND(1.457,2);

cell:向上取整,返回>=该参数的最小整数

#1
SELECT CEIL(1.00);
#2
SELECT CEIL(1.01);
#-1
SELECT CEIL(-1.01);

floor:向下取整,返回<=该参数的最大整数

truncate:截断

#1.6
SELECT TRUNCATE(1.65,1);

mod:取余

#1
SELECT MOD(10,3);
#-1
SELECT MOD(-10,3);
#1
SELECT MOD(10,-3);

 

日期函数

#当前日期与时间2020-11-22 16:45:04
SELECT NOW();
#当前日期2020-11-22
SELECT CURDATE();
#当前时间16:44:15
SELECT CURTIME();

#2020
SELECT YEAR(NOW());
#1998
SELECT YEAR('1998-01-01');
SELECT YEAR(日期字段);
#年、月、日、时、分、秒同理

str_to_date:将字符通过指定的格式转换成日期

#其中%Y 代表4位的年份
#其中%y 代表2位的年份
#其中%m 代表月份 01、02、03
#其中%c 代表月份 1、2、3
#其中%d 代表日 01、02
#其中%H 代表24小时制
#其中%h 代表12小时制
#其中%i 代表分钟 00-59
#其中%s 代表秒 00-59

#1998-03-02
SELECT STR_TO_DATE('1998-3-2','%Y-%c-%d');
SELECT STR_TO_DATE('3-2 1998','%c-%d %Y');

date_format:将日期转成字符串

#20年11月22日
SELECT DATE_FORMAT(NOW(),'%y年%m月%d日');

 

其他函数

SELECT VERSION();
SELECT DATABASE();
SELECT USER();

 

流程控制函数

if函数:if else效果

SELECT IF(10<5,'大','小');

case函数:switch case的效果

#2
SELECT CASE 10<5 WHEN 1 THEN 1 WHEN 0 THEN 2 ELSE 3 END;

case函数:多重if

#2
SELECT CASE WHEN 1=2 THEN 1 WHEN 1=1 THEN 2 ELSE 3 END;

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值