标题:马上考试了。。。SQL 把我的复习题 公布下吧~有的不会做哈~~
只看楼主
宋广宇
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-4-16
结帖率:33.33%
 问题点数:0 回复次数:1 
马上考试了。。。SQL 把我的复习题 公布下吧~有的不会做哈~~
1`查询 年龄 大于 20岁的 女同学的 学号和姓名。
select 学号,姓名 from s
where 姓名='女'and year(getdate())-year(出生日期)>20

2`查询 李老师所教的课程号·课程名
select 课程号,课程名 from c
where 教师 like '李%'

3`查询 学号为'j0301'所选秀的全部课程成绩
select * from sc
where 学号='j0301'

4`查询平均成绩都在80分以上的学生学号及平均成绩
select 学号,avg(成绩)as平均成绩 from sc
group by 学号
having avg(成绩) >80

5`查询 至少有6人选修的课程号
select 课程号 from sc
group by 课程号
having count(*)>6

6`查询c02号课程得最高分的学生的学号
select top 1 学号 from sc
where 课程号='c02'order by 成绩 desc

7`查询所有数学系学生的信息
select * from s
where 系='数学'

8`查询学号为'j0401'的学生选修的课程号和课程名
select 课程号,课程名, from c
where 课程号 in (select 课程号 from sc
where 学号='j0401')

9`'李小波'所选修的全部课程名称
select 课程名 from c
where 课程号 in (select 课程号 from sc
where 学号= (select 学号 from s
where 姓名 ='李小波'))


10`所有成绩都在70分以上的学生姓名及所在系
select 姓名,系 from s
where 学号 in (select 学号 from sc
group by 学号
having min(成绩)>70)
//第二种方法
select 姓名,系 from s
where 学号 (select 学号 from sc right join s on s.学号=sc.学号
where 成绩<70 )

11`英语成绩比数学成绩好的学生(自身连接)
SELECT S.* FROM S WHERE S.学号 IN
 (SELECT SC.学号 FROM SC INNER JOIN SC1 ON SC.学号=SC1.学号 AND SC.成绩>SC1.成绩
 AND SC.课程号=(SELECT 课程号 FROM C WHERE 课程名='英语') AND SC1.课程号=(SELECT 课程号 FROM C WHERE 课程名='数学'))
12.至少选修了两门课及以上的学生姓名和性别(可用嵌套查询)。

13.选修了李老师所讲课程的学生人数。

14.“操作系统”课程得最高分的学生的姓名、性别和所在系(可用嵌套查询)。
select 姓名,性别,系 from s,sc

15.显示所有课程的选修情况。

16.取出没有选修“操作系统”课程的学生姓名和年龄。

17.没有选修李老师所讲课程的学生。


18.取出选修了全部课程的学生和性别。

19.检索至少选修课程“数据结构”和“C语言”的学生学号。

20.检索学习课程号为C02的学生学号、姓名和所在系。

21.检索选修课程号C01或C02的学生学号、姓名和所在系。

22.检索至少选修课程号为C01和C03的学生姓名。

23.检索每个学生的年龄。

24.在学生基本信息表S中检索学生的姓名和出生年份,输出的列名为STUDENT_NAME和BIRTH_YEAR。


25`向学生选课数据表sc中插入一个元组(S0404,C06,90)
   insert into sc
  values ('S0404','c06','90')

26`把课程名为vb的成绩;从学生选课数据表sc中删除.
delete from  sc
where 课程名='vb'

27`把女同学的成绩提高10%
update sc
set 成绩=成绩+10
where 学号 in (select 学号 from s
where 性别='女')

28·列出选修课程超过3门的学生姓名及选修门数

29`求选修各课程的学生的人数

30`在学生选课数据表SC中,求选修课程C01的学生的学号和得分,并将结果

39`检索至少有两名男同学选修的课程名

40`检索学生基本信息表S中不姓'王'的学生记录

41`检索和“李军”同性别并同班的学生的姓名
select 姓名from s
where 性别=(select 性别 from s
where 姓名='李军') and 系=(select from s
where 姓名='李军') and 姓名<>'李军'

42`统计被学生选修的课程门数
select  count (distinct 课程号) from sc     
 //distinct 去掉重复记录

43`求选修C04课程的学生的平均年龄。
   select

44`求刘老师所授课程的每门课程的学生平均成绩
select 课程号, avg(成绩) from sc
where 课程号=(select 课程号 from c
where 教师 like '刘%')
Group by 课程号

45`统计每门课程的学生选修人数(超过2人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列:
select 课程号, count(*)from sc
group by 课程号 //每个人 需要他
Having count(*)>2
order by count(*) desc, 课程号 asc  //人数相同时 课程号按升序排列

46`查询“c01”课程比“c02”课程成绩高的所有学生学号
select a.学号 from
(select 学号,课程号,成绩
where 课程号='c01')as a,
(select 学号,课程号,成绩
where 课程号='c02')as b
where a.学号=b.学号 and
a.成绩 >b.成绩

47`查询平均成绩大于60分的同学的学号和平均成绩

48`查询所有同学的学号,姓名,选课数,总成绩
select 学号,姓名, count(*),max (成绩)
from sc inner join s ons.学号=sc.学号
group by 课程号

49`查询姓"李"的李老师的个数

50`查询没学过"叶平"老师课的同学的学号,姓名
  select 学号,姓名 from s
  where 学号 not in
  (select 学号 from sc
  where 课程号=
 (select 课程号 from c
  where 教师 ='应刻苦'))
  
51`查询学过"c01"并且也学过编号"c02"课程的同学的学号`姓名
  select 学号,姓名 from s
  where 学号 in
  (select 学号 from sc
  where 课程号='c01'and 学号 in
  (select 学号 from sc
  where 课程号='c02'))
  第二种方法
  select s.学号,姓名 from s,sc as a,sc as b
  where a.学号 = b.学号 and a.课程号 ='001'and b.课程号= 'c02'
  and s.学号
  
52`查询学过"叶平"老师所教的所有课的同学的学号`姓名
   select 学号 from sc
   where 课程号 in (select 课程号  from c
   where 教师='叶平')
   group by 学号
   having count(*)=
   (select count(*) from c
   where 教师='叶平')

53`查询课程编号“c02”的成绩比课程编号"c01"课程低的所有同学的学号`姓名;
   Select 学号,姓名 from s
   where 学号 in
   (select a.学号 from sc as a,sc as b
   where a.学号=b.学号 and a.课程号=b.课程号 and a.成绩<b.成绩 and a.课程号 ='c01' and b.课程号='c02')

54`查询所有课程成绩小于 60 分的同学的学号`姓名;

 Select 学号,姓名 from s
 where 学号 in (Select 学号 from sc
 Group by 学号
 Having max (成绩)<60)

55`查询没有学全所有课的同学的学号`姓名
 select 学号,姓名 from s
 where 学号 not in (
 Select 学号 from sc
 Group by 学号 having count(*)=
 (Select count(*) from c))

56`查询至少有一门课与学号为"j0401"的同学所学相同的同学的学号和姓名;
Select 学号,姓名 from s
where 学号 in
(select 学号 from sc
 where 课程号 in
(select 课程号 from sc
 where 学号='j0401')and 学号<>'j0401')

57`查询至少学过课程号为"c01"同学所学一门课的其他同学学号和姓名;

58`把"SC"表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;

59`查询和'j0401'号的同学学习的课程完全相同的其他同学学号和姓名;
Select 学号,姓名 from s
where 学号 in
(select 学号 from sc
 where 课程号 in
(select 课程号 from sc
 where 学号='j0401')and 学号<>'j0401')
group by 学号,姓名
having count(*)=(select count(*)from sc
where 学号='j0401')

60`删除学习"叶平"老师课的SC表记录

61`查询每门课程被选修的学生数

62`查询出只选修了一门课程的全部学生的学号和姓名

63`检索 至少两名男同学选修的课程名
select 课程名 from c where 课程号 in (select sc.课程号 from sc inner join s on s.学号=sc.学号 where s.性别='男' group by sc.课程号 having count(sc.课程号)>=2)

64`查询 ‘操作系统’课程得分最高的学生姓名 性别和所在系
select s.姓名,s.性别,s.系 from s inner join sc on s.学号=sc.学号
inner join c on sc.课程号=c.课程号 where c.课程名='操作系统'
and sc.成绩=(select max(sc.成绩) from sc inner join c on sc.课程号 = c.课程号 where c.课程名='操作系统')
搜索更多相关主题的帖子: 出生日期 where group 老师 姓名 
2011-06-27 11:56
宋广宇
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-4-16
得分:0 
S  (学号  姓名 出生日期  系  电话 性别 )  SC  (学号 课程号 成绩 )C  (课程号 课程名 教师 ) 三个数据表
2011-06-27 11:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-344110-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.179286 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved