找了一份sql的练习题,个人感觉挺不错的,希望能向大牛们请教与分享.回复时请标出题号,如果有不同的解法麻烦指出各个解法的优略.
题目:
1. 查询"c001"课程比"c002"课程成绩高的所有学生的学号;
2. 查询平均成绩大于70分的同学的学号和平均成绩并按成绩大小排序;
3. 查询所有同学的学号,姓名,选课数,总成绩;
4. 查询姓"刘"的老师的个数;
5. 查询没学过"谌燕"老师课的同学的学号,姓名;
6. 查询学过"c001"并且也学过编号"c002"课程的同学的学号,姓名;
7. 查询学过"谌燕"老师所教的所有课的同学的学号,姓名;
8. 查询课程编号"c002"的成绩比课程编号"c001"课程低的所有同学的学号,姓名;
9. 查询所有课程成绩小于70分的同学的学号,姓名;
11. 查询至少有一门课与学号为"s001"的同学所学相同的同学的学号和姓名;
12. 查询至少学过学号为"s001"同学所有一门课的其他同学学号和姓名;
13. 把"SC"表中"谌燕"老师教的课的成绩都更改为此课程的平均成绩;
14. 查询和"s001"号的同学学习的课程完全相同的其他同学学号和姓名;
15. 删除学习"谌燕"老师课的SC表记录;
16. 向SC 表中插入一些记录,这些记录要求符合以下条件:没有上过编号"c002"课程的同学学号. "c002"号课的平均成绩;
17. 查询各科成绩最高和最低的分,以如下形式显示:课程ID,最高分,最低分;
18. 按各科平均成绩从低到高和及格率的百分数从高到低顺序;
19. 查询不同老师所教不同课程平均分从高到低显示;
20. 统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60];
21. 查询各科成绩前三名的记录:(不考虑成绩并列情况);
22. 查询每门课程被选修的学生数;
23. 查询出只选修了一门课程的全部学生的学号和姓名;

解决方案 »

  1.   

    这不是测试SQL功底,是帮忙做家庭作业吧,呵呵~~~~
    自己先测测吧,有问题再来。
      

  2.   

    基本的sql查询,自己先做一下,有问题了再问吧  这样比较好些~~
      

  3.   

    这都是入门级的查询,苦于没有表结构,内容,哥实在无法编下去了
    1. 查询"c001"课程比"c002"课程成绩高的所有学生的学号;
    select student  from  表 t where t.coo1>t.coo2
    2. 查询平均成绩大于70分的同学的学号和平均成绩并按成绩大小排序;
    select  student_id,(课1+课2+课3)/3  m  where (课1+课2+课3)/3 >70  order by m
    3. 查询所有同学的学号,姓名,选课数,总成绩;
    select student_id,name from 表
    4. 查询姓"刘"的老师的个数;
    select count(*) from 表  t where  t.student like'刘%'
      

  4.   

    http://blog.csdn.net/sws9999/archive/2008/10/03/3013544.aspx这里有答案