1.掌握Management Studio的使用。
2.掌握带函数查询和综合查询的使用。
1.统计年龄大于30岁的学生的人数。
select count(*) 人数
from Student
where (year(getdate())-year(Birthday))>30
2.统计数据结构有多少人80分或以上。
select count(*) 人数
from StudentGrade
where Course_id =(
select Course_id
from Course
where Course_name='数据结构'
)and grade>=80
3.查询“0203”课程的最高分的学生的学号。(请分别用TOP1和函数来进行查询,并分析它们的区别)
select Stu_id
from StudentGrade
where Course_id='0203' and grade=(
select max(grade)
from StudentGrade
where Course_id='0203'
)
select top 1 stu_id
from StudentGrade
where Course_id='0203'
order by grade desc
4.统计各系开设班级的数目(系名称、班级数目),并创建结果表。(需考虑没有班级的系)
select depar_name 系名,count(Class_id) 班级数目 into resulttable1
from deparment left join class on Deparment.Depar_id=class.Depar_id
group by Deparment.depar_name
5.选修了以“01”开头的课程的学生学号,姓名,选课的课程号。
select Student.stu_id,stu_name,Course_id
from Student,StudentGrade
where Student.Stu_id=StudentGrade.Stu_id
and Course_id like '01%'
6.统计每科目的最高分、最低分,平均分、总分,并以中文列名显示。
select max(grade) 最高分,min(grade) 最低分,avg(grade) 平均分,sum(grade) 总分
from StudentGrade
group by Course_id
7.
所有成绩都在70分以上的学生姓名(提示:使用子查询。需考虑未选课的学生)。
select Stu_name
from Student
where Stu_id in(
select Stu_id
from StudentGrade
group by stu_id
having min(grade)>=70
)
8.“数据库”课程得最高分的学生的学号、姓名和所在系(提示:使用子查询)。
-- 老师给出来的答案
select student.Stu_id,stu_name,depar_name
from student,Deparment,class,studentgrade,course
where Deparment.Depar_id=class.Depar_id and class.Class_id=student.Class_id
and student.stu_id=studentgrade.Stu_id and course.Course_id=StudentGrade.Course_id
and course_name='数据库' and grade=(
select max(grade)
from studentgrade,course
where studentgrade.Course_id=Course.Course_id and Course_name='数据库'
)
-- 我做的
select Stu_id,Stu_name,depar_name
from Student,Deparment,class
where Student.class_id=class.Class_id
and class.Depar_id=Deparment.Depar_id
and stu_id in (
select Stu_id
from Studentgrade
where grade in (
select max(Grade)
from StudentGrade
where Course_id =(
Select Course_id
from Course
where Course_name='数据库'
) ) and course_id =(
Select Course_id
from Course
where Course_name='数据库'
)
)
9.至少选修了两门课及以上的学生姓名和性别
select Stu_name,Stu_sex
from student
where Stu_id in(
Select Stu_id
from StudentGrade
group by Stu_id
having count(*)>=2
)
暂时没有,有错可以在评论区call me,大家一起探讨,我的不一定都是对的!!!!