SQL习题集(3)

2019-05-17 13:54

select min(自动编号) from tablename

group by 学号,姓名,课程编号,课程名称,分数

)

5 . 有学生信息表{学号,班级,姓名,学科,成绩},

请写出每班语文成绩在前10名并且数学成绩不在倒数10名的学生的个人信息

select 学号,班级,姓名,学科,成绩 from 学生 where 学号 in ( select top 10 学号 from 学生 where 学科='语文' order by 成绩 desc )

and 学号 not in ( select top 10 学号 from 学生 where 学科='数学' order by 成绩 asc )

6.查询出每门课都大于80分的学生姓名

name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 100 王五 英语 90

select distinct name from table

where name not in (

select distinct name from table

where fenshu<=80 ) 或者

select name from table12 group by name

having min(fenshu)>80

9.查询所有选修了1号课程的学生姓名

select 学生名 from 学生 where exists (

select *

from 学生选课

where 学生选课.学生_ID=学生.学生_ID and 课程_ID=1 )

10. --2005年选了郭德刚课程的学生名单

select distinct 学生名 from dbo.学生 where 学生_ID in ( select 学生_ID from dbo.学生选课 where 年度=2005 and 课程_ID in ( select 课程_ID from dbo.教师任课 where 年度=2005 and 教师_ID= ( select 教师_ID from dbo.教师 where 教师姓名='郭德刚' ) ) )

11.--2006年,选了 男老师课程 成绩不及格的男学生

select distinct 学生名 from 学生

where 性别_ID=1 and 学生_ID in ( select distinct 学生_ID from 学生选课 where 成绩<60 and 年度=2006 and 课程_ID in ( select distinct 课程_ID from 教师任课 where 年度=2006 and 教师_ID in ( select 教师_ID from 教师 where 性别_ID=1 ) ) )

12. --每科 都及格的学生

--变换:没有一科 不及格的学生

select 学生_ID,学生名 from 学生

where 学生_ID not in ( select distinct 学生_ID

from 学生选课 where 成绩<60 )

13.张三丰教过的 姓张的物理系的学生

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

where 姓名 like '张%' and 系_ID in ( select 系_ID from dbo.系 where 系名 like '%物理系%' )

and 学生_ID in ( select 学生_ID from dbo.学生选课 where 开课_ID in ( select 开课_ID from dbo.教师认课 where 教师_ID in ( select 教师_ID from dbo.教师 where 教师名='张三丰' ) ) )

14.(2003年) 在(911) 教室上过课的[老师]

select 教师名 from dbo.教师 where 教师_ID in (

select 教师_ID from dbo.教师认课 where 开课_ID in ( select 开课_ID from dbo.开课 where 年度='2003' )

and 开课_ID in ( select 开课_ID from dbo.课时安排 where 教室号=911 ) )

15.--(女老师)教过的(不及格)的(男)[学生]?

select 姓名 from dbo.学生 where 性别_ID in ( select 性别_ID from dbo.代码_性别 where 性别名='男' )

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

and 学生_ID in ( 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 性别名='女' ) ) ) )

16--(毕业年级)中学分(不够)(12学分) 的[学生]?

select 姓名 from dbo.学生

where 届=year(getdate())-3 and 学生_ID in ( select 学生_ID from dbo.学生选课 a,dbo.课程 b, dbo.开课 c where a.开课_ID = c.开课_ID and b.课程_ID= c.课程_ID group by 学生_ID having sum(学分)<12 )

17--(计算机系)开过至少两门课的[老师]?

select 教师_ID, 教师名, 出生日期, 系_ID, 性别_ID, 职称_ID from dbo.教师 where 教师_ID in (

select 教师_ID from dbo.教师认课 group by 教师_ID having count(*)>=2 )

and 系_ID in (

select 系_ID from dbo.系

where 系名 like '%计算机%' )

18.本校中[老师]或[学生]重名的名字

select * from (

select 姓名 from dbo.学生 union all

select 教师名 from dbo.教师 ) lin

group by lin.姓名 having count(*)>=2

19 05年开课数最少的系?(用临时表)

select 系名 from dbo.系 w, (

select top 1 系_ID,count(*) as shu from dbo.课程 a,dbo.开课 b

where a.课程_ID=b.课程_ID and 年度=2005 group by 系_ID order by shu asc )lin

where w.系_ID = lin.系_ID 20.各系中教师学生比例最低的 select w.系_ID, 系名 from dbo.系 w, ( select top 1 l1.系_ID , l1.lss/1.0/xss as bz from ( select 系_ID, count(*) as lss from dbo.教师 group by 系_ID )l1


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

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

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

马上注册会员

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