本文实例讲述了mysql常用函数。分享给大家供大家参考,具体如下:
本文内容:
- mysql函数的介绍
- 聚集函数
- 用于处理字符串的函数
- 合并字符串函数:concat(str1,str2,str3…)
- 比较字符串大小函数:strcmp(str1,str2)
- 获取字符串字节数函数:length(str)
- 获取字符串字符数函数:char_length(str)
- 字母大小写转换函数:大写:upper(x),ucase(x);小写lower(x),lcase(x)
- 字符串查找函数
- 获取指定位置的子串
- 字符串去空函数
- 字符串替换函数:
- 用于处理数值的函数
- 绝对值函数:abs(x)
- 向上取整函数:ceil(x)
- 向下取整函数:floor(x)
- 取模函数:mod(x,y)
- 随机数函数:rand()
- 四舍五入函数:round(x,y)
- 数值截取函数:truncate(x,y)
- 用于处理时间日期的函数
- 获取当前日期:curdate(),current_date()
- 获取当前时间:curtime(),current_time()
- 获取当前日期时间:now()
- 从日期中选择出月份数:month(date),monthname(date)
- 从日期中选择出周数:week(date)
- 从日期中选择出周数:year(date)
- 从时间中选择出小时数:hour(time)
- 从时间中选择出分钟数:minute(time)
- 从时间中选择出今天是周几:weekday(date),dayname(date)
首发日期:2018-04-14
mysql函数的介绍:
- 为了简化操作,mysql提供了大量的函数给程序员使用(比如你想输入当前时间,可以调用now()函数)
- 函数可以出现的位置:插入语句的values()中,更新语句中,删除语句中,查询语句及其子句中。
聚集函数:
- 聚集函数用于汇集记录(比如不想知道每条学生记录的确切信息,只想知道学生记录数量,可以使用count())。
- 聚集函数就是用来处理“汇集数据”的,不要求了解详细的记录信息。
- 聚集函数(aggregate function) 运行在行组上,计算和返回单个值的函数。
实验表数据(下面的运行数据基于这个表):
create table student(
name varchar(15),
gender varchar(15),
age int
);
insert into student values("lilei","male",18);
insert into student values("alex","male",17);
insert into student values("jack","male",20);
insert into student values("john","male",19);
insert into student values("nullpeople","male",null);
avg(字段)函数:
- 返回指定字段的数据的平均值
- avg() 通过对表中行数计数并计算指定字段的数据总和,求得该字段的平均值。
![](/d/20211018/256fda2d05e6aff56c272beac0ff1c1a.gif)
- avg() 函数忽略列值为 NULL 的行,如果某行指定字段为null,那么不算这一行。
count(字段)函数:
- 返回指定字段的数据的行数(记录的数量)
- 字段可以为"*",为*时代表所有记录数,与字段数不同的时,记录数包括某些字段为null的记录,而字段数不包括为null的记录。
![](/d/20211018/cdc9eb7aa73246405419386b4bc65da1.gif)
![](/d/20211018/b97a37082c40dfaba4c4a33f6bd2960d.gif)
max(字段)函数:
- 返回指定字段的数据的最大值
![](/d/20211018/ced9bec9ec3f0f3b20b18f69b3e8ebcf.gif)
- 如果指定字段的数据类型为字符串类型,先按字符串比较,然后返回最大值。
- max() 函数忽略列值为 null的行
min(字段)函数:
- 返回指定字段的数据的最小值
![](/d/20211018/eab3f514876c3b4749d19f3034f47411.gif)
- 如果指定字段的数据类型为字符串类型,先按字符串比较,然后返回最小值。
- min()函数忽略列值为 null的行
sum(字段)函数:
- 返回指定字段的数据之和
![](/d/20211018/ffe651d0d740b5921e22b25cc1444af6.gif)
- sum()函数忽略列值为 null的行
补充:
- 聚集函数的字段如果的数据为null,则忽略值为null的记录。
- 比如avg:有5行,但是只有四行的年龄数据,计算结果只算四行的,
- 但是如果不针对字段,那么会计算,比如count(x)是计算记录数的,null值不影响结果。
- 还有一些标准偏差聚集函数,这里不讲述,想了解更多的可以百度。
- 聚集函数在5.0+版本上还有一个选项DISTINCT,与select中类似,就是忽视同样的字段。【不可用于count(x)】
用于处理字符串的函数:
合并字符串函数:concat(str1,str2,str3…)
- 用于将多个字符串合并成一个字符串,如果传入的值中有null,那么最终结果是null
- 如果想要在多个字符串合并结果中将每个字符串都分隔一下,可以使用concat_ws(分隔符,str1,str2,str3…),如果传入的分隔符为null,那么最终结果是null(不过这时候如果str有为null不影响结果)
![](/d/20211018/ff0a2a91ff4b1d1156af3a141787a870.gif)
比较字符串大小函数:strcmp(str1,str2)
- 用于比较两个字符串的大小。左大于右时返回1,左等于右时返回0,,左小于于右时返回-1,
- strcmp类似编程语言中的比较字符串函数(依据ascll码?),会从左到右逐个比较,直到有一个不等就返回结果,否则比较到结尾。
![](/d/20211018/b87fb6b247625b7a59dbcd56502f4bc9.gif)
获取字符串字节数函数:length(str)
- 用于获取字符串字节长度(返回字节数,因此要注意字符集)
![](/d/20211018/71d861cd10a12e03179b04f6c36c1a86.gif)
获取字符串字符数函数:char_length(str)
- 用于获取字符串长度
![](/d/20211018/942bd8a445dd49112469706bbf244b79.gif)
字母大小写转换函数:大写:upper(x),ucase(x);小写lower(x),lcase(x)
- upper(x),ucase(x)用于将字母转成大写,x可以是单个字母也可以是字符串
![](/d/20211018/8da34e65b5cf7e37bc03e1ae6a428d41.gif)
- lower(x),lcase(x)用于将字母转成小写,x可以是单个字母也可以是字符串
![](/d/20211018/67f9043790f50764534c6e10132471a8.gif)
- 对于已经是了的,不会进行大小写转换。
字符串查找函数:
- find_in_set(str1,str2)
- 返回字符串str1在str2中的位置,str2包含若干个以逗号分隔的字符串(可以把str2看出一个列表,元素是多个字符串,查找结果是str1在str2这个列表中的索引位置,从1开始)
![](/d/20211018/15a75baf6bc83e275a264010bdda4029.gif)
- field(str,str1,str2,str3…)
- 与find_in_set类似,但str2由一个类似列表的字符串变成了多个字符串,返回str在str1,str2,str3…中的位置。
![](/d/20211018/9ce1f60897e8f56a7096ee90d3d35a2b.gif)
- locate(str1,str2):
- 返回子串str1在字符串str2中的位置
![](/d/20211018/2bd49e73678d04f02989398f4d4bd70e.gif)
- position(str1 IN str2)
- 返回子串str1在字符串str2中的位置
![](/d/20211018/a59dacdb961f320b9b4f7fe2d0c63ec8.gif)
- instr(str1,str2)
- 返回子串str2在字符串str1中的位置【注意这里调转了】
![](/d/20211018/cb51124e6c12b2d9c94e8f3e5f7c0e2e.gif)
获取指定位置的子串:
- elt(index,str1,str2,str3…)
- 返回指定index位置的字符串
![](/d/20211018/2f2cdfab5a9dd245d7fb25fcc2e9e222.gif)
- left(str,n)
- 截取str左边n个字符
![](/d/20211018/9af93f7e23055af000058376d7d7224b.gif)
- right(str,n)
- 截取str右边n个字符
![](/d/20211018/da36afc25ff32f9d77072c1e6d102351.gif)
- substring(str,index,len)
- 从str的index位置截取len个字符
![](/d/20211018/d4091836595a23704e3b616c3675b7bd.gif)
字符串去空函数:
- ltrim(str):
- 去除字符串str左边的空格
![](/d/20211018/b34a354bfa8831ccad4e1c36dbd00524.gif)
- rtrim(str)
- 去除字符串str右边的空格
![](/d/20211018/f6169f4ed95abbe27b41284bf5341f48.gif)
- trim()
- 去除字符串str两边的空格
![](/d/20211018/8f4b7e8f36ab0bced4c3b8201616dd3c.gif)
字符串替换函数:
- insert(str1,index,len,str2)
- 使用str2从str1的index位置替换str1的len个元素
![](/d/20211018/7fbd01af47d681773d9e4191f151b1b0.gif)
- replace(str,str1,str2)
- 将str中的子串str1全部替换成str2
![](/d/20211018/5d6f312334c0573970b1ded393d51d67.gif)
用于处理数值的函数:
绝对值函数:abs(x)
向上取整函数:ceil(x)
向下取整函数:floor(x)
取模函数:mod(x,y)
随机数函数:rand()
- 返回0-1内的随机数
- 如果想对某种情况都使用同一随机值,可以使用rand(x),x相同时返回同样的随机结果。
![](/d/20211018/86211e70b1467cb5d7feb3ebe48f99f0.gif)
四舍五入函数:round(x,y)
- 返回数值x带有y为小数结果的数值(四舍五入)
![](/d/20211018/fa5c03d8793e11147a8c0da621f4688c.gif)
数值截取函数:truncate(x,y)
- 返回数值x截取y位小数的结果(不四舍五入)
![](/d/20211018/5c63da58301f729a1683e5df9aa7166e.gif)
用于处理时间日期的函数:
获取当前日期:curdate(),current_date()
- 返回格式为:
![](/d/20211018/f4788d70a467987c8b94b5f4d820dd50.gif)
获取当前时间:curtime(),current_time()
- 返回格式为:
![](/d/20211018/3b9ed91ef773bf7d41a95d2fc27ae766.gif)
获取当前日期时间:now()
- 返回格式为:
![](/d/20211018/38d69b0b4c2dd0b7310c748c41f5fee9.gif)
从日期中选择出月份数:month(date),monthname(date)
从日期中选择出周数:week(date)
- 返回格式为:
![](/d/20211018/695f51a23d50c150fe559057d1194e61.gif)
从日期中选择出周数:year(date)
- 返回格式为:
![](/d/20211018/7f0ccefda5ac7e30d8d52d2daea0f7e1.gif)
从时间中选择出小时数:hour(time)
- 返回格式为:
![](/d/20211018/51d6fc88b9631f1f646e7920654512a7.gif)
从时间中选择出分钟数:minute(time)
- 返回格式为:
![](/d/20211018/8ab5afad7744465088886f125f37f17f.gif)
从时间中选择出今天是周几:weekday(date),dayname(date)
- 返回格式为:
![](/d/20211018/ca9cf8df88596fea0584ddb4cccdeeeb.gif)
日期函数还是比较常用的,想了解更多,可以参考官方文档:
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
想了解更多函数,可以参考官方文档(下面的是5.7的):
https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html
更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总》
希望本文所述对大家MySQL数据库计有所帮助。
您可能感兴趣的文章:- mysql如何查询日期与时间
- 如何选择合适的MySQL日期时间类型来存储你的时间
- mysql 时间戳的用法
- Python MySQL 日期时间格式化作为参数的操作
- MySQL的时间差函数TIMESTAMPDIFF、DATEDIFF的用法
- MySQL的时间差函数(TIMESTAMPDIFF、DATEDIFF)、日期转换计算函数(date_add、day、date_format、str_to_date)
- thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
- mysql 设置自动创建时间及修改时间的方法示例
- MySQL如何使用时间作为判断条件