二、常用函数
1、count()
用来统计表中记录的一个函数;
语法:
(1)count(*) --- 包括所有列,返回表中的记录数,相当于统计表的行数,在统计结果的时候,不会忽略列值为NULL的记录。
(2)count(1) --- 忽略所有列,1表示一个固定值,也可以用count(2)、count(3)代替,在统计结果的时候,不会忽略列值为NULL的记录。
(3)count(列名) --- 只包括列名指定列,返回指定列的记录数,在统计结果的时候,会忽略列值为NULL的记录(不包括空字符串和0),即列值为NULL的记录不统计在内。
(4)count(distinct 列名) --- 只包括列名指定列,返回指定列的不同值的记录数,在统计结果的时候,在统计结果的时候,会忽略列值为NULL的记录(不包括空字符串和0),即列值为NULL的记录不统计在内。
例如:select count(*) from student; -- 统计一共有多少学生信息;
select count(1) from student; -- 统计一共有多少学生信息;
select count(s_name) from student; -- 统计姓名不为空的学生有多少
注意:count(1)和count(*),在使用时效果一致,但是count(1)执行效率略快,如果查询信息准确最好使用 count(列名);
2、sum()
求和函数;
语法:sum(列名)
例如:select s_id 学号, sum(g_grade) 成绩 from grades where s_id=‘001‘; -- 统计学号为001的成绩总和
结果:
学号 | 成绩 |
001 | 191 |
(两科成绩分别为 95和96)
3、distinct()
去重函数,即过滤掉多余的重复记录只保留一条。;
语法:distinct(列名)
例如:select distinct(s_name) 姓名 from student; -- 得到学生表中不重复的学生信息;
注意:当查询两个以上字段时 distinct()函数必须写在前面,而且要与group by 连用!
例如:select * , count(distinct s_name) from student group by s_name;
4、avg()
取平均值函数;
语法:avg(列名)
例如:select s_id 学号, avg(g_grade) 成绩 from grades where s_id=‘001‘; -- 查询学号为001 的平均分数 ;
结果:
学号 | 成绩 |
001 | 95.5 |
(两科成绩分别为 95和96)
5、date_format(date,format)
日期格式化,即将日期转换为对应的字符串格式;
语法:date_format(date,format)
例如:select * from student s where s_birdate = date_format("20020101",‘%Y-%m-%d‘); -- 查询生日是2002-01-01的学生信息;
6、str_to_date(date,format)
按照所提供的显示格式(format)转换为DATETIME类型的值
语法:str_to_date(date,format)
例如: select str_to_date(s_birdate,‘%Y-%m-%d‘) from student s;
7、round()
用于数据的四舍五入;
语法:
1、round(x,d) ,x指要处理的数,d是指保留几位小数
这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为0;
2、round(x) ,其实就是round(x,0),也就是默认d为0;
例如:
1、查询: select round(5623.79658,1);
结果: 5623.8
2、查询: select round(5623.79658,0);
结果:5624
3、查询: select round(5623.79658,-1);
结果:5620
8、length()
用于获取字符串的长度;
语法:length(列名)
例如:select length(c_name) from student;
原文:https://www.cnblogs.com/taozhiyaoyao99/p/14785979.html