日期:2014-05-19  浏览次数:20557 次

一些SQL语句不会,基础类,急,谢谢~~~~~~~~
表一:学生情况信息表   XS
学号 姓名 专业名   性别   出生时间   总学分   备注
主键

表二:课程表   KC
课程号   课程名   开课学期   学时   学分
主键

表三 学生与课程表   XS_KC
学号   课程号   成绩   学分
主键   主键

查询操作
1、查询所有学生所选修的课程名,要求没有重复的记录。
2、显示以课程名分组后的存在最高分的课程名及最高分。
3、显示和“李方方”同学同年生的同学的学号,姓名。
4、显示男生所选修课程的课程名及平均成绩。
5、显示XS_KC表中每位学生的全部课程的平均成绩。
创建游标
    1.创建游标MYCURSOR,查询结果集为所有学生的总学分,并定义变量@score将当前结果读取至@score变量中,用WHILE语句循环,若查找到:。分以一:的记录则删除(在WHERE子句中使角CURRENT   OF游标名,指明是当前游标指针所指向的记录。)若在30至40之间的记录,则增加20分,操作完成后关闭游标并删除。注:CURRENT   OF关键字使用时游标定义中不出现READ-ONLY或FAST   FORWARD。


一定要用SQL语句来实现,谢谢

------解决方案--------------------
又見考試題
------解决方案--------------------
1.select a.学号,b.课程名 from table3 a,table2 b where a.课程号=b.课程号
2.select 课程名,max(成绩) as 成绩 from table3 a,table2 b where a.课程号=b.课程号 group by 课程名
3.select 学号,姓名 from table1 where year(出生时间) in(select year(出生时间) from table1 where name= '李方方 '

------解决方案--------------------
1、查询所有学生所选修的课程名,要求没有重复的记录。
select DISTINCT a.学号,b.课程名 from KC a,XS_KC
b where a.课程号=b.课程号
2、SELECT a.课程号,a.课程名,MAX(b.成绩) 最高分
FROM KC a,XS_KC b where a.课程号=b.课程号 GROUP BY a.课程号,a.课程名

3、SELECT 学号,姓名 FROM XS
WHERE 姓名 <> '李方方 ' AND 出生时间 IN (SELECT 出生时间 FROM XS WHERE 姓名= '李方方 ' )