SQL习题集(4)

2019-05-17 13:54

, ( select 系_ID, count(*) xss from dbo.学生 group by 系_ID )l2 where l1.系_ID=l2.系_ID order by bz ) lin where w.系_ID = lin.系_ID 21.全都及格了的学生

select 学生_ID, 姓名, 出生日期, 性别_ID, 籍贯_ID, 系_ID, 届, 班级 from dbo.学生 where 学生_ID in (

select 学生_ID from dbo.学生选课 group by 学生_ID having min(成绩)>=60 )

22.求选了跟[李宇春课程数量] 相同 的[学生]?

select 姓名 from dbo.学生 where 学生_ID in (

select 学生_ID from dbo.学生选课 group by 学生_ID having count(*)= ( select shu from ( select 学生_ID,count(*) shu from dbo.学生选课 group by 学生_ID )lin where 学生_ID = ( select 学生_ID from dbo.学生 where 姓名 = '李宇春' ) ) )

and 姓名 != '李宇春' 23 与java 学时 相同的 课程

select 课程_ID, 课程名, 学分, 学时, 系_ID, 年级, 学期

from dbo.课程 where 学时 = ( select 学时 from dbo.课程 where 课程名='java' )

and 课程名!='java'

select b.*

from dbo.课程 a , dbo.课程 b where a.学时=b.学时

and a.课程名='java' and b.课程名!='java' 24课时安排冲突的记录

select distinct a.开课_ID

from dbo.课时安排 a,dbo.课时安排 b where a.星期=b.星期 and a.节=b.节

and a.教室号=b.教室号 and a.开课_ID!=b.开课_ID 25 --张无忌 老师都开过什么课了 select 课程_ID,课程名 from dbo.课程

where 课程_ID in ( select 课程_ID from dbo.开课 where 开课_ID in ( select 开课_ID from dbo.教师认课 where 教师_ID in ( select 教师_ID from dbo.教师 where 教师名='张无忌' ) ) )

select 课程_ID,课程名

from dbo.课程,dbo.开课,dbo.教师认课,dbo.教师 where dbo.课程. 课程_ID= dbo.开课.课程_ID and dbo.开课.开课_ID=dbo.教师认课.开课_ID and dbo.教师认课.教师_ID=dbo.教师.教师_ID and dbo.教师.教师名='张无忌' 26--平均分比 那英 高的学生名单

--查名单[ 平均分 >[ 那英的平均分] ]

select 姓名 from dbo.学生

where 学生_ID in ( select 学生_ID from dbo.学生选课 group by 学生_ID having avg(成绩)> ( select avg(成绩) from dbo.学生选课 where 学生_ID= ( select 学生_ID from dbo.学生 where 姓名='那英' ) ) )

27 --本年度选课 少于3门的学生

select 学生_ID, 姓名 from dbo.学生 where 学生_ID in (

select 学生_ID from dbo.学生选课 where 开课_ID in ( select 开课_ID from dbo.开课 where 年度=year(getdate()) )

group by 学生_ID having count(*) <3 )

28 --全及格了的学生

select *

from dbo.学生

where 学生_ID not in (

select 学生_ID from dbo.学生选课 where 成绩<60 )

29. --2006 2007年度 开课的门数

select count(case 年度 when 2006 then 1 end), count(case 年度 when 2007 then 1 end) from dbo.开课

30. --比物理系所有老师 年龄都大的 外语系老师

select *

from dbo.教师

where datediff(yy,出生日期,getdate()) >all ( select datediff(yy,出生日期,getdate()) from dbo.教师 where 系_ID= ( select 系_ID from dbo.系 where 系名='物理系' ) )

and 系_ID= ( select 系_ID from dbo.系 where 系名='外语系' )

31. --java前5名,VC后5名 的学生

select *

from dbo.学生 where 学生_ID in (

select top 5 学生_ID

from dbo.课程 a,dbo.开课 b,dbo.学生选课 c

where c.开课_ID=b.开课_ID and b.课程_ID=a.课程_ID and 课程名='java' order by 成绩 desc )

and 学生_ID in (

select top 5 学生_ID

from dbo.课程 a,dbo.开课 b,dbo.学生选课 c

where c.开课_ID=b.开课_ID and b.课程_ID=a.课程_ID and 课程名='vc' order by 成绩 asc )

32.--2006年选了课的学生

select *

from dbo.学生 where 学生_ID in ( select 学生_ID from dbo.学生选课 a,dbo.开课 b where a.开课_ID=b.开课_ID )

select *

from dbo.学生 x where exists

( )

select *

from dbo.学生选课 a,dbo.开课 b where a.开课_ID=b.开课_ID and x.学生_ID=a.学生_ID

select *

from dbo.学生 x where 学生_ID in (

select distinct 学生_ID from dbo.学生选课 where 开课_ID in ( select 开课_ID from dbo.开课 where 年度=2006 ) )

select distinct x.*

from dbo.学生 x,dbo.学生选课 a,dbo.开课 b where x.学生_ID=a.学生_ID and a.开课_ID=b.开课_ID and b.年度=2006

------------------------------------------------------------------------------- 33.--25岁以下的 选了java课的男生

select *

from dbo.学生

where 性别_ID=1 and datediff(year,出生日期,getdate())<=25 and 学生_ID in (

select 学生_ID

from dbo.学生选课 a , dbo.开课 b , dbo.课程 c

where a.开课_ID =b.开课_ID and b.课程_ID =c.课程_ID and c.课程名 like '%java%' )

----------------------------------------------------------------------------------- 34 --大四的总学分小于5的学生

select *

from dbo.学生 where 学生_ID in (

select *

from dbo.学生选课 a ,dbo.开课 b ,dbo.课程 c where not(成绩 is null or 成绩<60) and a.开课_ID =b.开课_ID and b.课程_ID =c.课程_ID


SQL习题集(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:道路交通静化在交通安全中的应用

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: