新建学生信息表 students :sno , sname , ssex , birthday , province , class
新建学生选修信息表 cclasses :sno , cno , grade
一、单表查询练习
1、查询<学生信息表>,查询学生"张三"的全部基本信息
select * from students where sname='张三';
2、查询<学生信息表>,查询学生"张三"和”王四”的基本信息
select * form students where sname='张三' and sname='王四';
3、查询<学生信息表>,查询姓"张"学生的基本信息
select * form students where sname like '张%';
4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息
select * form students where sname like '%四%';
5、查询<学生信息表>,查询姓名长度为三个字,姓“李”,且最后一个字是“强”的全部信息
select * form students where sname like '李_强';
6、查询<学生信息表>,查询姓"张"或者姓”李”的学生的基本信息
select * form students where sname like '张%' or sname like '李%';
7、查询<学生信息表>,查询姓"张"并且"所属省份"是"北京"的学生信息
select * form students where sname like '张%' and province = '北京';
8、查询<学生信息表>,查询"所属省份"是"北京"、”新疆”、”山东”或者"上海"的学生的信息
select * form students where province in ('北京','新疆','山东','上海');
9、查询<学生信息表>,查询姓"张",但是"所属省份"不是"北京"的学生信息
select * form students where sname like '张%' and province not in ('北京');
10、查询<学生信息表>,查询全部学生信息,并按照“性别”排序,性别相同的情况下按照“所属省份”排序,所属省份相同的情况下再按照“班级”排序
select * form students order by ssex , province , class;
11、查询<学生信息表>,查询现有学生都来自于哪些不同的省份
select distinct province form students;
12、查询<学生选修信息表>,查询没有填写成绩的学生的学号、课程号
select sno, cno form classes where grade is null;
13、查询<学生选修信息表>,查询全部填写了成绩的学生的选修信息,并按照“成绩”从高到低进行排序
select * form classes where grade is not null order by grade desc;
二、聚合函数练习
1、统计<学生信息表>,统计共有多少个学生
select count(*) as 学生总数 form students;
2、统计<学生信息表>,统计年龄大于20岁的学生有多少个
select count(*) as 学生数 form students where borthday < 1997;
3、统计<学生信息表>,统计出生时间在1980年至1982年的学生人数
select count(*) as 学生数 form students where birthday between 1980 and 1982;
4、统计<学生选修信息表>,统计学号为"S001"的学生的平均成绩
select avg(grade) form classes where sno=s001;
5、统计<学生选修信息表>,统计学号为"S001"的学生的总成绩
select sum(grade) form classes where sno=s001;
6、统计<学生选修信息表>,查询课程号为”C001”的课程的最高成绩
select max(garde) form classes where cno=c001;
7、统计<学生信息表>,查询所有学生中的最大年龄是多少
select min(birthday) form students;
三、分组查询练习
1、统计<学生选修信息表>,统计每个课程的选修人数
select cno , count(*) form classes group by cno;
2、统计<学生选修信息表>,统计每个同学的总成绩
select sno , sum(grade) form classes group by sno;
3、统计<学生信息表>,统计每个班级中每种性别的学生人数,并按照班级排序
select class , ssex , count(*) form students group by ssex order by class;
4、统计<学生选修信息表>,统计每门课程的平均成绩,并按照成绩降序排序
select cno , avg(grade) form classes group by cno order by avg(grade) desc;
5、统计<学生选修信息表>,显示有两门以上课程不及格的学生的学号,成绩
select sno , grade form classes where grade < 60 group by sno having count(*)>2;
6、统计<学生信息表>,统计每个班级中的最大年龄是多少
select class , min(birthday) form students group by class;