以 teacher 表为例,先查所有 teacher 信息:
查询结果如下图:
可以使用 MIN() 函数对结果集取年龄最小值的数据:
执行结果如下图:
以 student 表为例,先查看所有 student 信息:
查询结果如下图:
可以使用 MAX() 函数对结果集取年龄最大值的数据:
执行结果如下图:
以 student_course、course、student 表内连接查询为例:
查询结果如下图:
使用 AVG 函数取分组数据平均年龄:
执行结果如下图 :
可以使用 HAVING 对上述结果筛选,例如选出选课学生平均年龄大于 20 的课程数据:
执行结果如下图:
本小节介绍了如何使用 MIN、MAX 两种聚合函数对查询结果集进行筛选,还介绍了如何在 GROUP BY中分组使用聚合函数,并且使用 HAVING 后面的条件对分组数据进行筛选,需要注意的是聚合函数产生的数据列最好重命名,这是因为后端程序语言在处理这些数据时需要规范的字段名,例如:
查询结果如下图:
语法:
语法:
语法:
语法:
语法:
其中:
column_name为要舍入的字段
decimal规定要返回的小数位数
ROUND()函数始终返回一个值。当decimals为正数时,column_name四舍五入为decimal所指定的小数位数。为decimals为负数时,column_name则按decimals所指定的在小数点的左边四舍五入
特别的,如果length是负值且大于小数点前的数字个数,ROUND()函数将返回0
实例如下:
ROUND( X ):返回参数 X 四舍五入后的一个整数
ROUND(X, D): 返回参数 X 四舍五入且保留 D 位小数后的一个数字。如果 D 为 0,结果将没有小数点或小数部分
ISNULL()
ISNULL() 函数用于判断字段是否为NULL,只有一个参数 column_name 为列名,根据 column_name 列中的字段是否为NULL值返回0或1
语法:
其中:
如果 column_name 列中的某个字段是NULL则返回1,不是则返回0
IFNULL()
IFNULL() 函数也是用于判断字段是否为NULL,但是与 ISNULL() 不同的是它接收两个参数,第一个参数 column_name 为列名,第二个参数value相当于备用值
语法:
其中:
如果 column_name 列中的某个字段是NULL则返回value值,不是则返回对应内容
COALESCE(column_name, value) 函数作用和用法和IFNULL()相同
实例如下:
COUNT() 函数用于计数,可利用其确定表中行数的数目或者符合特定条件的行的数目。当 COUNT() 中的参数不同时,其的用途也是有明显的不同的,主要可分为以下三种情况: COUNT(column_name) 、 COUNT(*) 、 COUNT(DISTINCT column_name)
COUNT(column_name)
COUNT(column_name) 函数会对指定列具有的行数进行计数,但是会除去值为NULL的行。该函数只要用于查看和列数据的数量情况,便于统计数据的缺失值
假设出现某一列的数据全为NULL值得情况
使用 COUNT(column_name) 函数对该列进行计数,会返回0
语法:
COUNT(*)
COUNT(*) 函数会对表中行的数目进行计数,包括值为NULL所在行和重复项所在行
该函数主要用于查看表中的记录数
语法:
注意: count(column_name) 和 count(*) 的区别
count(column_name) 中,如果 column_name 字段中值为NULL,则计数不会增加,而如果字段值为空字符串 "" ,则字段值会加1
count(*) 中,除非整个记录全为NULL,则计数不会增加,如果在某一个记录不为NULL,或者为空字符串"",计数值都会加1.正常来说,表都会有主键,而主键不为空,所以 COUNT(*) 在有主键的表中等同于 COUNT(PRIMARY_KEY) ,即查询有多少条记录
COUNT(DISTINCT column_name)
COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目
语法:
实例如下:
1.字符串函数char_lengt()
concat()
instr()
lcase()
left()
ltrim()
mid()
2.时间函数
now()
curdate()
curtime()
datediff()
date_add()
数学函数
abs()
ceiling()
floor()
pow()
rand()
round()
其他函数
md5()
version()
database()
UUID()
同一使用select 函数名(参数列表)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)