一些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 姓名= '李方方 ' )