求缺少了成绩的学生的学号和课程号
A. 采用自身连接的方法,查找不同课程成绩相同的学生的学号,课程号和成绩.
这种写法是不对抄的,如果分数相同,课程相同,人不同的情况是体现不出来的
我用的表学生id sno 课程id cno 成绩score
SELECT SC_WEI.*
FROM (
SELECT DISTINCT(CNO)
,SCORE
FROM SC_WEI
WHERE SCORE IN(
SELECT SCORE
FROM (
SELECT SCORE
,COUNT(SCORE) CNT
FROM SC_WEI
GROUP BY SCORE)
WHERE CNT > 1)
GROUP BY SCORE
,CNO ) T
INNER JOIN SC_WEI ON SC_WEI.CNO = T.CNO
AND SC_WEI.SCORE = T.SCORE
B. 建立一个存储过程student_info,要求根据班级查询学生的学号、姓名、课程号和分数(表结构如表2,表3)
CREATE PROCEDURE [student_info]
(@class varchar(4))
WITH
EXECUTE AS CALLER
AS
select 表2.学号,表2.姓名,表3.课程专号,表3.成绩 from 表2,表3 where 表2.学号=表3.学号 and 表2.班级属=@class
GO
C. 求全部操做 设有如下三个关系模式,用SQL语句完成: 学生(学号,姓名,性别,年龄,专业) 课程(课程号
1、创建电子商务专业学生成绩视图,属性包括学号、姓名、课程名和成绩:
create view score_view
as
select s.学号,版姓名,课程名,成绩
from 学生权 s,课程 c,选课 x
where s.学号=x.学号 and c.课程号=x.课程号
go
2、查询没有成绩的学生的学号、姓名和课程号:
select s.学号,姓名,课程名
from 学生 s,课程 c,选课 x
where s.学号=x.学号 and c.课程号=x.课程号 and 成绩 is null
D. 急求!!某些学生选修课程后未参加考试,所以有选课纪录,但无考试成绩。查找缺少成绩的学生学号和课程号
select S#,C# from SC where score is null
E. SQL:选课表(学号,课程号,成绩),现要查询成绩最高的三个学生的学号、课程号和成绩,包括并列情况
select * from 选课 where 成绩>=(select 成绩 from (select 成绩,row_number()over(order by 成绩 desc nulls last ) r from 选课) where r=3) order by 成绩 desc。
考虑了并列关系,原理是先求出第三内名容同学的成绩,然后与第三名同学的成绩相等的同学认为等同于第三名,最后输出的是前三名同学,和第三名并列的也一并输出。如果看不懂里面某个代码可以告诉我,我用的是ORACLE。
F. sql语句:查询缺少了成绩的学生的学号、姓名和课程号
当然是第一个了,第二个你看结果对吗?
不写等号搜索的结果集是笛卡尔集,和题意不符
G. 用SQL语言找出超过所选课程平均成绩的学号和课程号。
selecta.学号,a.课程号
from选课asa,
(select学号,avg(成绩)as平均专成属绩from选课groupby学号)asb
wherea.学号=b.学号
anda.成绩>b.平均成绩
H. 学生(学号,姓名,课程号,课程名,成绩)给出该关系模式的主码和范式级别,如果不满足第三范式
(1)学生(学号,姓名,课程号,课程名,成绩)的主码是(学号,课程号)版。
(权2)范式级别为第一范式,因为该关系模式每一列都是不可分割的,但是非主键属性不完全依赖主键属性,如姓名只依赖于学号,不依赖于课程号,所以满足第一范式而不满足第二范式。
(3)要满足第三范式的解决方案如下
学生(学号,姓名)主码为:学号
课程(课程号,课程名)主码为:课程号
成绩(学号,课程号,成绩)主码为:(学号,课程号)
这样满足的第二范式的非主键属性完全依赖主键属性,同时满足了第三范式的任何非主属性不依赖于其它非主属性。
I. 求选修课程号位C1且成绩在90分以上的学生学号,姓名和成绩。
select sc.Cnum,sc.name 课程名称,s.num 学号,s.name 姓名,sc.Score
from 学生表 s
left join 课程表 sc on sc.Snum = s.Snum
where sc.Cnum = 'C1' and sc.Score > '90';
兄弟,由于你只是给我看了你写的语句,我不知内道你的表结构,以及字容段信息,所以有些地方我已经用别名帮你取出来了,你自己修改一下。
你的语句问题不大,犯了一点错,就是90分以上了,题目都很明确了,那么就不是=号了,而是大于号,至于说其它的你说没数据,你先select * from一下,看看有没有数据,如果真没有,你可以留下qq,我帮你看看,反正今天周末不上班,我可以抽空帮你看看具体问题。
有问题在留言吧。