接上篇 SQL入门-基础篇(问题版)
上一篇主要测试大家的SQL基础语法掌握,这一回测试下大家函数的掌握情况。
常用函数
1.求 -10 和 9 的绝对值
考察:abs()
2.将 -1.4 、2.6的四舍五入值保留整数
考察:round(x)
3.将 3.474、-1.875 四舍五入保留2位小数
考察:round(x,d)
4.求 'abc'、'love中国' 的字节长度和字符长度
考察:length()、char_length()
5.将 'abd'和'love中国'拼接到一起
考察:concat()
6.查看系统当前的日期
考察:CURRENT_DATE,CURRENT_DATE()
7.求 日期'2018-03-07'往前28天是几号
考察:str_to_date() 和 interval 和 date_add()
聚合函数
本次使用下面的表为例,学生成绩表,根据问题描述,写出SQL
CREATE TABLE `t_point_score` (
`score_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '成绩ID',
`class_name` varchar(10) DEFAULT NULL COMMENT '班级名称',
`student_no` int(11) DEFAULT NULL COMMENT '学号',
`student_name` varchar(10) DEFAULT NULL COMMENT '学生姓名',
`course_name` varchar(10) DEFAULT NULL COMMENT '课程名称',
`score` int(11) DEFAULT NULL COMMENT '分数',
PRIMARY KEY (`score_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
8.查询t_point_score表中的总记录数
考察:函数 count()
9.查询t_point_score表中学生人数
考察:函数 count() 和 distinct
10.查询t_point_score表中,每个班级的学生人数
考察:函数 count() 和 distinct 和 group by
11.查询t_point_score表中,每门课程的最低分和最高分
考察:函数 min()、max() 和 group by
12.查询t_point_score表中,每名学生的所有课程的平均分
考察:函数avg()
13.查询出每个班级中,每门课程最高的学生的学号和姓名
考察:函数max() 和 子查询
此题难度高些,考察了子查询的使用