对于教学数据库三个基本表: 10

学生S(S#,SNAME,AGE,SEX)学习SC(S#,C#,GRADE)课程C(C#,CNAME,TEACHER)请用SQL语句表达下列查询:(1)查询全部学生都选修... 学生 S(S#,SNAME,AGE,SEX)
     学习 SC(S#,C#,GRADE)
     课程 C(C#,CNAME,TEACHER)
请用SQL语句表达下列查询:
(1)查询全部学生都选修了的课程编号和课程名称。
(2)把低于总平均成绩的女同学的成绩提高5%。
(3)查询至少选修3门课程的学生的学号和姓名。
(4)把“高等数学”课的所有不及格成绩改为60。
(5)查询“张小飞”没有选修的课程号和课程名。
展开
 我来答
765398944
推荐于2018-03-14 · 超过26用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:78.4万
展开全部
--1
SELECT C#,CNAME FROM C WHERE C# IN(
SELECT C# FROM SC GROUP BY C# HAVING COUNT(S#)=(SELECT MAX(S#) FROM S)
)

--2
update SC set SC.GRADE=SC.GRADE*1.05 from S where SC.GRADE<(select avg(SC.GRADE) from SC) and S.SEX='0'

--3
SELECT S#,SNAME FROM S WHERE S# IN(
select S# from SC group by S# having count(C#)>=3
)

--4
update SC set SC.GRADE=60 from C where C.CNAME='数学' and C.C#=SC.C#

--5
select C#,CNAME FROM C WHERE C# not IN(
select SC.C# from SC left join S on S.S#=SC.S# where S.SNAME='张三'
)
传说No1
2012-03-07 · TA获得超过101个赞
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:111万
展开全部
SELECT dbo.s.s, dbo.s.sname, dbo.s.age, dbo.s.sex, dbo.sc.c, dbo.sc.grade, dbo.c.cname,
dbo.c.teacher
FROM dbo.s LEFT OUTER JOIN
dbo.sc ON dbo.s.s = dbo.sc.s LEFT OUTER JOIN
dbo.c ON dbo.sc.c = dbo.c.c
有了这个数据,就好写了

UPDATE sc
SET grade = grade + 5
WHERE (grade <
(SELECT AVG(grade)
FROM sc)) AND (s IN
(SELECT s
FROM s
WHERE (sex = '女')))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式