跪求大神帮帮忙!!!有一个【学生选修课】数据库,数据库中包括三个表,学生表,课程表,成绩表 5
有一个学生数据库,有以下关系模式构成:学生(学号,姓名,性别,年龄,所在系)课程(课程号,课程名,学分)成绩表(学号,课程名,学分)根据下面的要求编写对应的sql语句。1...
有一个学生数据库,有以下关系模式构成:学生(学号,姓名,性别,年龄,所在系)课程(课程号,课程名,学分)成绩表(学号,课程名,学分)根据下面的要求编写对应的sql语句。1.根据年龄由高到低,同龄的按学号由低到高列出每个学生的学号、姓名、性别、年龄、所在系。2.请写出查询姓名重复的学生的sql语句。结果集包括:学生编号、学生姓名。3.将选修课程号为1(CNO=1)的课程的成绩置为0。4.请查询出学号为1(SNO=1)的学生的选修课成绩表。结果集包括:课程号、课程名称、成绩、该学生针对该课程成绩排名/该课程参考总人数
展开
1个回答
2019-06-18
展开全部
//自己把中文替换成英文字段名 我用的sql server数据库
select 学号、姓名、性别、年龄、所在系 from 学生 order by 年龄 desc, 学号 asc
select 学号,姓名 from 学生 where 姓名 in( select 姓名 from 学生 group by 姓名 having count(*)>1 )
update 成绩 set 成绩=0 where CNO=1
如果/不是除法的话 只是字符串 (除法暂时有问题)下班了 明天再来写
select C.课程号,D.课程名,D.成绩 from COURSE C,(
select CONVERT(VARCHAR(50),A.排名)+'/'+CONVERT(VARCHAR(50),B.ZS) as '排名/人数',a.学号,a.课程名,a.成绩 FROM (
select ROW_NUMBER() over(partition BY 课程名 order by 成绩 desc) as 排名 ,* from GRADE where 学号='1') A,
(SELECT COUNT(*) as zs,课程名
FROM GRADE group by 课程名 ) B where a.课程名=b.课程名) D WHERE C.课程名=D.课程名
select 学号、姓名、性别、年龄、所在系 from 学生 order by 年龄 desc, 学号 asc
select 学号,姓名 from 学生 where 姓名 in( select 姓名 from 学生 group by 姓名 having count(*)>1 )
update 成绩 set 成绩=0 where CNO=1
如果/不是除法的话 只是字符串 (除法暂时有问题)下班了 明天再来写
select C.课程号,D.课程名,D.成绩 from COURSE C,(
select CONVERT(VARCHAR(50),A.排名)+'/'+CONVERT(VARCHAR(50),B.ZS) as '排名/人数',a.学号,a.课程名,a.成绩 FROM (
select ROW_NUMBER() over(partition BY 课程名 order by 成绩 desc) as 排名 ,* from GRADE where 学号='1') A,
(SELECT COUNT(*) as zs,课程名
FROM GRADE group by 课程名 ) B where a.课程名=b.课程名) D WHERE C.课程名=D.课程名
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询