Mysql常用函数

本文深入讲解SQL中的各类函数,包括字符函数如length、concat、upper、lower等,数学函数如round、ceil、floor,日期函数如now、curdate,以及其他实用函数如isnull、ifnull。同时介绍了流程控制函数if和case的使用方法。

1.字符函数

1.length()

返回字符串的字节数,汉字是三个字节,字母是一个字节。(GBK编码情况下汉字是俩字节,utf8 汉字是三个字节)

2.concat()

拼接字符串函数,将字符串拼接起来,或者将查询结果拼接起来

select concat(firstname,' ',lastname) from customers;

查询结果为: 

3.upper、lower

分别是将字符串转为大写和将字符串转为小写

4.substr(简写)substring

截取字符串

该函数被重载了,常见类型如下

substr(str,pos)

指的是从第pos个字符开始往后截取,注意mysql里的索引是从1开始

substr(str,pos,len)

指的是从第pos个字符开始往后截取len个字符

5.instr

用于返回字串在主串中第一次出现位置的索引,如果找不到则返回0

instr(str1,str2)//str2为字串

6.trim

把字符串前后的指定的字符去掉

trim(ch from str)//将str中前后ch的字符去掉
如
trim('a' from 'aaaaaaa123aaaaaa')
去除后只剩123
ch from 可以不加,不加则去除空格

7.lpad、rpad

lpad(str,len,padstr)

将padstr这个字符加在str字符串左边,直到str字符串总长达到len

如果想在右边加的话 需使用rpad

8.replace

替换指定字符串或字符

replace(主串,目标串,替换完的串)

2.数学函数

1.round

四舍五入

round(number,num)

num是保留的小数点位数,不加num 则默认为0

 

2.ceil向上取整

ceil(number);//向上取整,返回大于等于number的最小整数

3.floor 向下取整

floor(number);//返回比number小于或等于最大整数

4.truncate截断

truncate(number,num);小数点后保留num位,不四舍五入

5.mod取余

 

3.日期函数

1.now

返回当前系统日期+时间

select now();

2.curdate

返回当前系统日期

select curdate();

3.curtime

返回当前时间

select curtime();

4.获取指定部分,年、月、日、小时、分钟、秒

select year(日期类型数据);

如select year('2019-1-1');

select month(日期类型数据);

如果想出现英文月份名字可以用

select monthname(日期类型);
同样的 day minute second 天 分 秒

5.str_to_date

将日期格式转换为指定格式的日期

select str_to_date('1999-12-1','%Y-%m-%d');

6.date_format

将日期转化成字符

date_format('2019/6/9','%Y年%m月%d日');

下面是常见的格式符 

4.其他函数

select version();查看版本
select databases();查看数据库
select user();查看用户

 

isnull(属性名);//若属性为空返回1,反之返回0
ifnull(属性名,x);//若属性为空则返回x

5.流程控制函数

 

1.if 函数

select if(条件,'1','2')//如果条件为true 则为1,反之为2

2.case函数

有两种用法

1.

case 要判断的字段或表达式(属性名)
when 常量1 then 要显示的值1或语句1 
when 常量2 then 要显示的值2或语句2
...
else 要显示的值n或语句n
end
不加分号不加分号不加分号不加分号不加分号不加分号不加分号不加分号

2.

case
when 条件1 then 要显示的值1或语句1
when 条件2 then 要显示的值2或语句2
...
else 要显示的值n或语句n
end

这个end就是结果显示的那一列的属性名,可以取别名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值