Mysql的常用函数

2023-11-30 10:48:57 浏览数 (1)

每天早上七点三十,准时推送干货

在开发中,数据库的种类千奇百怪,有各种,比如早期的 SQLServer,Mysql,Oracle,现在还有许多国产的数据库,但是有不少开发还是使用的 Mysql,但是对于 Mysql 中的各种各样的函数,用的却是没有那么多的,今天了不起就来带着大家一起看看这个 Mysql 的各种常用的函数。

Mysql 的日期函数

DATE_FORMAT(date,format)

按照指定的格式,格式化日期,我们来使用一下:

代码语言:javascript复制
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s');

一般我们使用的时候,都是经常在条件中使用的这个比如:

代码语言:javascript复制
where DATE_FORMAT(createTime,'%Y-%m-%d') = '2020-11-11' 

而且我们也可以对他进行分组比如:

代码语言:javascript复制
GROUP BY DATE_FORMAT(createTime,'%H');

这样的分组条件就是小时,每小时有多少数据,如果是每天,则换成 %d 就可以了

STR_TO_DATE(str,format)

这个则是把我们这个字符串转为日期

比如下面这样的:

代码语言:javascript复制
SELECT STR_TO_DATE('2023-11-21','%Y-%m-%d');

YEAR()

MONTH()

DAY()

代码语言:javascript复制
SELECT YEAR(NOW());

SELECT MONTH(NOW());

SELECT DAY(NOW())

参数我们传入日期,最后给我们返回的就是我们想要的年月日的信息。

DAYOFYEAR(date)

这个函数几乎很少用,是用来表示,当前日期是今年的第几天

代码语言:javascript复制
SELECT DAYOFYEAR(NOW());
333

其实在开发过程中,我们用到的日期函数并不会很多,我们用到的关于这个字符串函数,才是最多的。

字符串函数

CHAR_LENGTH(str)

CHARACTER_LENGTH(str)

这两个函数都是用来返回字符串的字符数的:

代码语言:javascript复制
select CHAR_LENGTH("hello");

select CHARACTER_LENGTH('hello');

结果:5

CONCAT(str1,str2,...)

CONCAT_WS(separator,str1,str2,...)

第一个就是多个字符串合并成一个字符串,第二个的意思则是,再中间可以拼接一段内容,或者理解为用中间的内容隔开。

这个几乎是我们经常用的函数,用来做两个字段的合并等等操作

代码语言:javascript复制
SELECT CONCAT('hello','world');
helloworld


SELECT CONCAT_WS(',','hello','world');

hello,world

FIELD(str,str1,str2,str3,...)

返回第一个字符串再字符串列表的位置:

代码语言:javascript复制
SELECT FIELD('x','d','c','x');

3

TRIM(' xxxx ')

这个也是我们在开发的时候经常会用到,但是在数据库层面其实很少用到,最多的还是在 Java 代码里面去除空格使用,再数据库中,含义也是一样的,都是用来去除字符串开始和结尾的空格。

这个时候就有人想问了,如果我只想去掉开头的,或者只想去掉结尾的空格怎么办?

LTRIM(str)

RTRIM(str)

第一个是去掉开始的空格,第二个是去掉结尾的空格,这个了不起都不用给大家演示,一个是去掉左边的,一个是去掉右边的, 没有R 没有L 的 则是两边都去掉。

UCASE(str)

UPPER(str)

这两个函数效果是一样的,转换字符串字符为大写,既然有大写,那么就势必会有小写

LCASE(str)

LOWER(str)

上述两个方法是吧字符串转为小写

**REPLACE() **

将字符串中出现的所有子字符串替换为新的子字符串

REVERSE()

这个函数就比较有意思了,把字符串给翻转过来,但是这个函数不是属于常用的函数,了不起实在是想不出什么需求,需要吧这个字符串给你倒过来,难道还想倒背如流?

聚合函数

在MySQL中,聚合函数主要由:count,sum,min,max,avg,这些聚合函数我们之前都学过,不再重复。这里我们学习另外一个函数:group_concat(),该函数用户实现行的合并。

group_concat()函数首先根据group by指定的列进行分组,并且用分隔符分隔,将同一个分组中的值连接起来,返回一个字符串结果。

代码语言:javascript复制
group_concat([distinct] 字段名 [order by 排序字段 asc/desc] [separator '分隔符'])

注意:

  • 使用distinct可以排除重复值;
  • 如果需要对结果中的值进行排序,可以使用order by子句;
  • separator是一个字符串值,默认为逗号。

数学函数

round(x,保留位数)函数

四舍五入; 当对正数进行四舍五入:按照正常的计算方式,四舍五入即可。当对负数进行四舍五入:先把符号丢到一边,对去掉负号后的正数进行四舍五入,完成以后,再把这个负号,补上即可。

代码语言:javascript复制
select round(1.595658,3) as out_put;

ceil(x)函数

向上取整,返回>=该参数的最小整数。求的是大于等于这个数字的最小整数

代码语言:javascript复制
select ceil(1.9) as out_put;
select ceil(1.1) as out_put;

至于数学函数中的 avg 和 sum 了不起都不用说了,一个平均数,一个求和,

0 人点赞