内容正文:
河北省(计算机类)对口招生
《数据库原理与应用技术-MySQL》复习讲义
模块 2 MySQL基础知识
考点 4 MySQL常用函数(一)
【考纲要求】
1. 掌握 MySQL聚合函数、数学函数、其他常用函数的概念及使用;
2. 掌握聚合函数:COUNT() 、SUM() 、AVG() 、MAX() 、MIN();
3. 掌握数学函数:ABS()、FLOOR()、RAND()、TRUNCATE()、SQRT()、ROUND();
4. 掌握其他常用函数:IF() 、IFNULL() 、VERSION()。
【知识网络】
【知识和技能要点】
一、MySQL聚合函数
聚合函数属于多行函数,对数据表多条数据进行统计计算,最终只返回一个结果;默认忽略字段中的NULL空值,不参与统计。
1.COUNT() 统计计数函数
功能:统计查询数据的行数或指定字段的非空数据个数。
(1)COUNT(*):统计数据表所有行数,无论字段是否为空,全部统计。
(2)COUNT(字段名):统计指定字段非NULL的数据个数,忽略空值。
(3)COUNT(常量):效果等同于COUNT(*),统计全部数据行数。
2.SUM() 求和函数
功能:对指定数值型字段的所有数据进行累加求和。
语法:SUM(字段名)
规则:仅支持数值类型,自动忽略NULL空值;若字段全为NULL,返回NULL。
3.AVG() 平均值函数
功能:计算指定数值字段的平均值。
语法:AVG(字段名)
核心公式:平均值 = 有效数值总和 / 有效数值个数(自动剔除NULL空值)
4.MAX() 最大值函数
功能:获取指定字段的最大值。
适用类型:数值、日期、字符串(按编码排序)。
5.MIN() 最小值函数
功能:获取指定字段的最小值。
适用类型:数值、日期、字符串,自动忽略NULL。
二、MySQL数学函数
1. ABS() 绝对值函数
功能:计算数值的绝对值,负数转正数,正数不变。
语法:ABS(数值/字段)
案例:ABS(-10) = 10,ABS(5) = 5
2. FLOOR() 向下取整函数
功能:向下取整,直接舍弃小数部分,向更小的整数取值。
语法:FLOOR(小数数值)
案例:FLOOR(3.9) = 3,FLOOR(-2.1) = -3
3. ROUND() 四舍五入函数
功能:对数值进行四舍五入,保留指定小数位数。
语法1:ROUND(数值) 默认保留0位小数,四舍五入取整数
语法2:ROUND(数值, n) 保留n位小数,四舍五入
4. TRUNCATE() 截断函数(直接舍去小数)
功能:直接截断小数,不四舍五入,强制保留指定位数。
语法:TRUNCATE(数值, n)
案例:TRUNCATE(3.999,1) = 3.9
辨析:ROUND四舍五入,TRUNCATE直接截断,无进位。
5. SQRT() 开平方函数
功能:计算数值的算术平方根。
语法:SQRT(非负数)
案例:SQRT(16) = 4
规则:负数开平方返回NULL。
6. RAND() 随机数函数
功能:返回 0~1 之间的随机小数(包含0,不包含1)。
语法:RAND()
三、MySQL其他常用函数
1. IF() 条件判断函数
功能:简单三元条件判断,满足条件返回值1,不满足返回值2。
语法:IF(条件, 成立返回值, 不成立返回值)
案例:IF(score>=60,'及格','不及格')
2. IFNULL() 空值替换函数(超级高频)
功能:判断字段是否为NULL,为空则替换为指定默认值,非空则显示原值。
语法:IFNULL(字段, 替换值)
案例:IFNULL(score,0) 成绩为空则显示0,避免聚合统计出错。
3. VERSION() 版本查询函数
功能:查询当前MySQL数据库的版本号。
语法:VERSION()
特点:无参数,直接调用返回版本字符串。
【练习题】
一、填空题
1.获取字段中最大数值、最大日期的聚合函数是________。
2.ROUND(5.678,1) 的运算结果是________。
3.TRUNCATE(5.678,1) 的运算结果是________。
4.FLOOR(4.99) 的运算结果是________。
5.想要生成1-50的随机整数,可使用FLOOR(________) 语句。
6.执行SQL语句:SELECT FLOOR(-5.9) + ROUND(2.48,1);,最终运算结果是________。
7.执行 SELECT ROUND(3.4449,2) , TRUNCATE(3.449,2),两个结果依次是________、________。
8.执行 SELECT ABS(FLOOR(-2.1) + CEIL(2.1)) 的结果是________。
9.数据表中有5条数据,其中3条score为NULL,2条score为80、90,执行COUNT(score)结果是________,执行COUNT(*)结果是________。
10.执行 SELECT SQRT(ROUND(15.6)) 的运算结果是________。
二、选择题
1.运算结果与ROUND(4.56,1) 不相同的是( )
A. ROUND(4.56,1.0) B. TRUNCATE(4.56,1)
C. 4.6 D. 四舍五入保留1位小数结果
2.计算平均值时,若字段存在大量NULL值,下列说法正确的是( )
A. 空值按0计算 B. 空值不参与计算 C. 统计报错 D. 结果为NULL
3.COUNT(score) 和 COUNT(*) 的核心区别是( )
A. 无区别 B. 前者忽略score字段NULL,后者统计所有行
C. 前者统计行数,后者统计字段数 D. 语法报错不同
4.下列关于聚合函数说法错误的是( )
A. 多行统计返回单值 B. 忽略NULL空值
C. 可直接统计字符串 D. MAX支持日期类型
5.FLOOR() 与 ROUND() 的共同特点是( )
A. 均会四舍五入 B. 均可对小数取整 C. 均忽略负数运算 D. 运算规则完全一致
6.下列语句能生成【10,30】随机整数的是( )
A. FLOOR(RAND()*20+10) B. FLOOR(RAND()*21+10)
C. FLOOR(RAND()*30+10) D. FLOOR(RAND()*10+20)
7.表中有4条数据,成绩分别为NULL、60、NULL、80,执行AVG(score)的结果是( )
A. 35 B. 70 C. 0 D. NULL
8.已知a=NULL,执行 SELECT IFNULL(MAX(a,10),0) 的结果是( )
A. NULL B. 10 C. 0 D. 报错
9.下列函数运算组合中,结果不为0的是( )
A. SQRT(0) B. ABS(FLOOR(0.1)) C. TRUNCATE(0.99,0) D. ROUND(0.6,0)
10.关于 TRUNCATE(8.999,1) 和 ROUND(8.999,1) 的运算结果,下列说法正确的是( )
A. 结果一致,均为9.0 B. 前者8.9,后者9.0
C. 前者9.0,后者8.9 D. 结果均为8.9
3、 判断题
1.COUNT(*) 可以统计数据表中所有数据行,包含存在NULL值的行。( )
2.ROUND() 函数既可以取整,也可以保留指定位数的小数。( )
3.TRUNCATE() 函数运算时会根据小数大小进行四舍五入。( )
4.IFNULL(字段,0) 可以将字段中的NULL值替换为0,避免统计偏差。( )
5.VERSION() 函数需要传入版本参数才能正常执行。( )
6.FLOOR() 函数对所有正数小数取整,效果都是直接舍弃小数部分。( )
7.RAND()*10 可以生成0-10之间包含10的随机小数。( )
8.IF() 函数只能在查询字段中使用,不能在WHERE条件中使用。( )
9.相同数值下,ROUND() 和 TRUNCATE() 保留小数位数相同时,结果一定一致。( )
10.SUM()、AVG() 函数可以直接对字符串类型字段进行统计计算。( )
【答案】
一、填空题
1. MAX() 2.5.7 3. 5.6 4. 4 5.RAND()*50+1 6. -3.5 7. 3.44、3.44
8. 0 9. 2、5 10. 4
二、选择题
1.B 2. B 3. B 4. C 5. B 6. B 7. B 8.D 9. D 10. B
三、判断题
1. √ 2. √ 3. × 4. √ 5.× 6. √ 7. × 8. × 9.× 10.×
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$