sql server高级查询

来源:互联网 发布:用什么软件优化电脑 编辑:程序博客网 时间:2024/06/11 21:13

1)  统计各个系的学生信息

select count(Sname) 总人数,Sdept from Student group by Sdept

2)  查询信管系学生的最大年龄和最小年龄

select MAX(Sage) 最大年龄,MIN(Sage) 最小年龄 from Student where

Sdept='信管系'

3)  查询信管系最大年龄和最小年龄的学生的姓名

  select Sname from Student where Sdept = '信管系' and

(Sage in (select max(Sage)from Student )

or Sage in (select min(Sage)from Student where Sdept = '信管系')

4)  统计选修c01课程的学生的最高分,最低分,总成绩和平均分

select MAX(Grade) 最高分,MIN(Grade) 最低分,SUM(Grade) 总成绩,AVG(Grade) 平均分

from SC WHERE Cno='c01'

5)  查询所有学生的选课信息,要求列出学生学号、姓名、课程名和成绩

   select Student.Sno,Sname,Cname,Grade from Student,SC,Course

    where Student.Sno=SC.Sno and Course.Cno=SC.Cno

6)  统计每门课程的选修人数

select count(Sno),Cno from SC group by Cno

7)  统计每个学生选修的课程门数及总成绩

select Sno,count(Cno) 选修课程数,SUM(Grade) 总成绩 from SC group by Sno

8)  查询哪些课程没有人选修,要求列出课程名、课程号

select Cno,Cname from Course where Cno not in(select Cno from SC)

9)  查询各科平均成绩超过80分的学生姓名

    select Sname,SC.Sno ,avg(Grade) 平均成绩

    from Student,SC

where Student.Sno=SC.Sno group by SC.Sno,Sname having avg(Grade)>80

10)查询选修了c03号课程的同学所在的系及该同学的姓名(用两种方法实现)

select Student.Sname,Sdept from Student where

Sno in (select Sno from SC where Cno='c03')

 

select Student.Sname,Sdept from Student,SC where

Student.Sno =SC.Sno and Cno ='c03'

11)查询“数据库基础”这门课的成绩在80分以上的学生姓名

   Select Sname from Student,SC,Course

where SC.Sno=Student.Sno and SC.Cno=Course.Cno and

Course.Cname='数据库原理'and Grade>80;

12)统计平均成绩大于70分的课程名

select Cname,AVG(Grade)from SC,Course where SC.Cno=Course.Cno

GROUP by SC.Cno,Cname  having AVG(Grade)>70

 

13)统计平均成绩大于70分的学生姓名及所在系

select Sname,Sdept from SC,Student where SC.Sno=Student.Sno

group by SC.Sno,Sdept,Sname having AVG(Grade)>70

14)从学生管理数据库的3张表中检索学生的学号,姓名,学习课程号、学习课程名及总成绩

select SC.Sno,Sname,SC.Cno,Cname,SUM(Grade) from SC,Student,Course where

SC.Sno=Student.Sno and SC.Cno=Course.Cno GROUP BY SC.Sno,Sname,SC.Cno,Cname

15)使用不带HAVINGGROUP BY子句汇总出SC表中的学生的学号及总成绩

SELECT Sno,SUM(Grade) from SC group by Sno

16)使用带HAVINGGROUP BY子句汇总出SC表中总分大于150分的学生的学号及总成绩

SELECT Sno,SUM(Grade) from SC group by Sno having SUM(Grade)>150

17)查询修了3门以上课程的学生的学号

SELECT Sno from SC group by Sno having COUNT(Cno)>3

18)查询信管系修了某课程的学生的修课程成绩,要求列出学生姓名、课程名和成绩

select Sname,Grade,Cname from SC,Course,Student where

SC.Cno=Course.Cno and Student.Sno=SC.Sno and Sdept='信管系'

 

原创粉丝点击