前言
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知识。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。