关系数据库语言SQL 课后练习(三)


前言

文章用到的S、SC、C、T均为教学使用的传统教学数据库,属性不再作出说明。

一、题干

试用SQL更新语句表达对教学数据库中关系S SC C T的更新操作:

二、解题步骤

1.往关系c中插入一个课程元组(‘c8’, ‘vc++’, ‘T6’)。

代码如下:

INSERT INTO C
VALUES(‘C8’,’VC++’,’T6’)

2.检索所授没门课平均成绩均大于80的教师姓名,并把检索值送往FACULTY(TNAME)中。

代码如下:

INSERT INTO FACULTY(TNAME)
SELECT DISTINCT TNAME
FROM(SELECT TNAME,C.C#,AVG(SCORE)
FROM T,C,SC
WHERE T.T#=C.T#AND C.C#=SC.C#
GROUP BY TNAME,C.C#)
AS RESULT(TNAME,C#,AVG—SCORE)AS X
WHERE 80<=ALL(SELECT AVG—SCORE
FROM RESULT AS Y
WHERE Y.TNAME=X.TNAME)

3.在SC中删除无成绩的选课元组

DELETE FROM SC WHERE SCORE IS NULL

4.把选修LIU老师课程的女同学选课元组全部删除

DELETE FROM SC
WHERE S# IN(SELECT S# FROM S WHERE SEX=’F’)
AND C# IN(SELECT C# FROM C.T WHERE C.T#=T.T#AND TNA

5.把MATHS课不及格的成绩全改为60

UPDATE SC
SET SCORE=60
WHERE SCORE<60
AND C# IN(SELECT C#FROM C WHERE CNAME=’MATHS’)

6. 把低于平均成绩的女同学成绩提高百分之五

UPDATE SC
SET SCORE=SCORE*1.05
WHERE S # IN(SELECT S# FROM S WHERE SEX='F’)
AND SCORE<(SELECT AVG(SCORE)FROM SC);

7. 当C4<=70提高百分之五,反之提高百分之四(使用两种方法)

UPDATE SC
SET SCORE=SCORE*1.04
WHERE C#=’C4’AND SCORE>70;
UPDATE SC
SET SCORE=SCORE*1.05
WHERE C#=’C4’AND SCORE<=70;

UPDATE SC
SET SCORE=SCORE*CASE
WHEN SCORE>70 THEN 1.O4
ELSE l.05
END
WHERE C#=’C4’:

8.SC中当某个成绩低于全部课程平均成绩,提高百分之五

UPDATE SC
SET SCORE=SCORE*105
WHERE SCORE<(SELECT AVG(SCORE)
FROM SC)

总结

文章发布的稍有仓促,敬请指正

  • 17
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值