文章教程

12.3.13使用MySQL函数

9/17/2020 9:26:54 PM 人评论 次浏览

12.3.13 使用MySQL函数

MySQL支持SQL常用的函数,如集合函数、字符串处理函数和日期函数等。本小节将介绍一些编程过程中经常遇到的MySQL函数,如下所示。

❑函数COUNT(),用来统计表中记录个数或这列中值的个数。

❑函数MAX(),返回某列中的最大值。

❑函数MIN(),返回某列中的最小值。

❑函数SUM(),将指定列的值求和。

❑函数AVG(),计算指定列的平均值。

❑函数LENGTH(),计算字符串的长度。

❑函数SUBSTRING(),截取子字符串。

❑函数YEAR(),返回指定日期的年份,范围在1000~9999之间。类似的还有MONTH()、HOUR()等函数。

❑函数UNIX_TIMESTAMP(),返回一个UNIX时间戳。

❑函数DATE_FORMAT(),将一个日期格式化。

❑函数NOW(),返回MySQL服务器系统的当前日期和时间。

下面分别举例介绍这些函数的用法。例如下面的SQL语句,使用函数COUNT()计算表users中总共有多少条记录。

这句SQL语句使用星号*作为函数COUNT()的参数,表示返回表users中记录总数。从其执行结果可以看出,表users一共有6行,即共有6条记录。如果想获取表中特定列的值的个数,可以使用列名作为函数COUNT()的参数,如下SQL语句所示。

这句SQL语句使用字段name作为函数COUNT()的参数,查找以字母J开头的用户数量。该SQL语句返回查询结果为2,说明表users中的name列有两个以字母J开头的值。

下面的SQL语句使用函数MAX()来统计表emp_salary中salary列的最大值。

下面的SQL语句使用函数MIN()来统计表emp_salary中salary列的最小值。

函数SUM可以将指定列的值求和,如下SQL语句所示。

这句SQL语句通过函数SUM()计算出表emp_salary中salary列所有值的和。而函数AVG()可以计算该列的平均值,如下SQL语句所示。

以上介绍的是MySQL的集合函数,接下来介绍一些字符串处理函数。在MySQL中使用函数LENGTH来计算字符串的长度,如下面的SQL语句可以返回字符串'string in MySQL'的长度。


SELECT LENGTH('string in MySQL');


在MySQL中执行这句SQL语句后,会得到指定字符串的长度:15。函数SUBSTRING可以截取一个字符串中的一部分,它的语法格式如下所示。


SUBSTRING(string,pos,len)


该函数有3个参数:参数string是原字符串;参数pos表示要截取字符串的起始位置;参数len表示要截取字符串的长度。如SUBSTRING('sometext',4,4),表示从字符串'sometext'的第5个字符(其在'sometext'中的位置为4,第1个字符的位置为0)开始,截取4个字符长度的子串,截取结果为'text'。

本小节最后,介绍几个常用的MySQL日期函数。函数YEAR()可以返回指定日期的年份,如下SQL语句所示。

这句SQL语句返回表users中id等于3的记录,并显示该记录中created_time字段值的年份。类似的函数还有MONTH(),HOUR()等,它们的用法和函数YEAR()类似,这里不再赘述。

在MySQL中,可以使用函数UNIX_TIMESTAMP()获取一个UNIX时间戳。如果没有给该函数指定参数,它将返回当前时间的时间戳,否则返回指定日期的时间戳。该函数的示例SQL语句及其显示结果如下所示。

这句SQL语句返回当前时间的UNIX时间戳。在MySQL使用函数DATE_FORMAT格式化一个日期,它的语法格式如下所示。


DATE_FORMAT(date,format)


该函数有两个参数:参数date表示要格式化的日期时间;format用来指定日期时间格式。该函数的示例SQL语句及显示结果如下所示。

函数NOW()可以返回MySQL系统的当前日期时间,下面的SQL语句将返回当前的日期时间。

事实上,MySQL提供了丰富的各类函数,为SQL提供支持。本小节限于篇幅,只能通过一些基本的、和编程相关的函数作为示例向读者加以介绍,读者还需通过实践和相关参考资料学习更多的内容。

教程类别