前言

MySQL函数是MySQL数据库提供的内置函数,这些内置函数可以更方便处理表中的数据。下面简单介绍一下MySQL中包含的几类常用函数。

聚合函数

聚合函数可实现根据一组数据求出一个值,聚合函数的结果值只根据选定数据行中非NULL值进行计算,NULL值被忽略。

COUNT()函数

COUNT()函数,对于除“*”以外的任何参数,返回所选择集合中非NULL值的行的数目;对于参数“*”,则返回所选择集合中所有行的数目,包含NULL值的行。没有WHERE子句的COUNT(*)是经过内部优化的,能够快速地返回表中所有的记录总数。

SUM()函数

SUM()函数可以求出表中某个字段取值的总和。

AVG函数

AVG()函数可以求出表中某个字段取值的平均值。

MAX()函数

MAX()函数可以求出表中某个字段值的最大值。

MIN()函数

MIN()函数可以求出表中某个字段值的最小值。

大家都是从学生时代过来的,下面使用学生信息表和成绩表来演示上面的SQL函数。

#统计学生表记录
SELECT COUNT(*) FROM tb_student;
#求学生分数总和
SELECT SUM(score) FROM tb_score;
#求学生的平均分
SELECT AVG(score) FROM tb_score;
#求成绩的最高分
SELECT MAX(score) FROM tb_score;
#求成绩的最低分
SELECT MIN(score) FROM tb_score;

数学函数

数学函数主要用于处理数字,包括整型和浮点数。下面介绍一下常用的几个数学函数。

ABS()函数

ABS()可以求出某字段值的绝对值。

FLOOR()函数

FLOOR()函数用于返回小于或等于参数x的最大整数。

RAND()函数

RAND()函数用于返回0~1之间的随机数。

TRUNCATE(x, y)函数

TRUNCATE(x, y)函数返回x保留到小数点后y位的值。

SQRT(x)函数

SQRT(x)函数用于求参数x的平方根。

下面看一下示例语句:

#求绝对值
SELECT ABS(5), ABS(-5);
#向下取整
SELECT FLOOR(1.5),FLOOR(-2);
#求随机数
SELECT RAND(), RAND();
#求小数点后几位
SELECT TRUNCATE(3.141592653,3);
#求16,25的平方根
SELECT SQRT(16),SQRT(25);

字符串函数

字符串函数主要用来处理数据表中的字符串。下面介绍一下常用的几个字符串函数。

UPPER(s)和UCASE(s)函数

UPPER(s)和UCASE(s)函数均可用于将字符串s中的所有哦字母变成大写字母。

LEFT(s, n)函数

LEFT(s, n)函数返回字符串s的前n个字符。

SUBSTRING(s, n, len)函数

SUBSTRING(s, n, len)函数用于将字符串s的第n个位置开始获取长度len的字符串。

下面看一下示例语句:

#转换大写
SELECT UPPER(‘hello’), UCASE(‘hello’);
#返回字符串的前n个字符
SELECT LEFT(‘hello’, 2);
#截取字符串
SELECT SUBSTRING(‘hello’, 2, 4);

日期和时间函数

日期和时间函数是MySQL中最常用的函数之一,主要用于对表中的日期和时间数据进行处理。下面介绍一下几个常用的日期和时间函数。

CURDATE()和CURRENT_DATE()函数

CURDATE()和CURRENT_DATE()函数获取当前日期。

CURTIME()和CURRENT_TIME()函数

CURTIME()和CURRENT_TIME()函数获取当前时间。

NOW()函数

NOW()函数可以获取当前日期和时间,有同样功能的还有CURRENT_TIMESTAMP()、LOCALTIME() 、SYSDATE()和LOCALTIMESTAMP()。

下面看一下示例语句:

#获取当前日期
SELECT CURDATE(), CURRENT_DATE();
#获取当前时间
SELECT CURTIME(), CURRENT_TIME();
#获取当前日期和时间
SELECT NOW(), CURRENT_TIMESTAMP(), LOCALTIME(), SYSDATE(), LOCALTIMESTAMP();

其他函数

MySQL中除了上述介绍的几类内置函数之外,还有很多其他函数,比如条件判断函数,系统信息函数。下面列举几个常用的函数。

IF(expr, v1, v2)函数

IF(expr, v1, v2)函数是一种条件判断函数,表示的如果表达式expr成立,则执行v1,否则执行v2。

IFNULL(v1, v2)函数

IFNULL(expr, v1, v2)函数也是一种条件判断函数,表示的如果表达式v1不为空,则显示v1的值,否则显示v2的值。

VERSION()函数

VERSION()函数是一种系统信息函数,获取数据库的版本号。

下面看一下示(注意引号是英文状态下):

#查询分数的优秀情况
SELECT studentNo, courseNo, score,IF(score>85, ‘优秀’, ‘一般’) levelFROM tb_score;
#判断是否为空
SELECT IFNULL(1/0,'空');
#查看数据库版本号
SELECT VERSION();

希望通过上面的操作能帮助大家学习到更多的MySQL知识。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。

MySQL常用函数学习