实验七 数据库数据更新

1、	打开“实验四”中的学生-课程数据库(S_T),完成以下题目。
(1)	建一新表,并将所有学生的学生的学号、平均成绩增加到其中。
答:代码如下:
--建一新表,并将所有学生的学生的学号、平均成绩增加到其中。
CREATE TABLE S_AvgGrade
(
Sno CHAR(10),
Avg_Grade NUMERIC(3,1) 
);
INSERT INTO S_AvgGrade
SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno;

(2)	假设所有的学生都选了‘008‘课程,如何将记录插入选修表中。
答:代码如下:
--假设所有的学生都选了‘008‘课程,如何将记录插入选修表中。
--由于Course中的Cno是SC表的外键,所以SC中的Cno的值必须在Course表中存在
--由于课程名不能为空值
--所以先插入‘008’号课程假设课程名为“离散数学”在Course表中
INSERT INTO Course(Cno,Cname)
VALUES ('008','离散数学');

INSERT INTO SC(Sno,Cno)
SELECT Sno,'008' 
FROM Student;

(3)	将所有CS系的成绩不及格学生的成绩加5分。
答:代码如下:(此处代码包括了缺考没有成绩的学生)
--将所有CS系的成绩不及格学生的成绩加5分。
UPDATE SC
SET Grade=Grade+5
WHERE Sno IN
(SELECT Sno FROM Student
WHERE Student.Sno=SC.Sno AND
Grade<60 AND
Sdept='CS');
UPDATE SC
SET Grade=5
WHERE Sno IN
(SELECT Sno FROM Student
WHERE Student.Sno=SC.Sno AND
Grade IS NULL AND
Sdept='CS');
 
(4)	删除选了‘数据库’数据库的学生的选课记录。
--删除选了‘数据库’数据库的学生的选课记录。
DELETE
FROM SC
WHERE Cno IN
(SELECT Cno 
FROM Course 
WHERE Cname='数据库');

2、	打开“实验四”中的SPJ数据库,完成以下题目。
(1)	把全部红色零件的颜色改成蓝色。
--把全部红色零件的颜色改成蓝色。
UPDATE P
SET COLOR='蓝'
WHERE P.COLOR='红';
 
(2)	由S5供给J4的零件P6改为由S3供应。
--由S5供给J4的零件P6改为由S3供应。
UPDATE SPJ
SET SNO='S3'
WHERE SNO='S5' AND JNO='J4' AND PNO='P6';

(3)	从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。
答:代码如下:
--从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。
--由于SPJ有外键约束,所以先先删除SPJ里S2的记录,再删除S中的S2
DELETE
FROM SPJ
WHERE SNO='S2';
DELETE
FROM S
WHERE SNO='S2';
查询结果如下:
 
(4)	请将(S2,J6,P4,200)插入供应情况关系。
答:代码如下:
--请将(S2,J6,P4,200)插入供应情况关系。
--由于在上一题中删除了供应商关系中的S2,所以先插入一条S2的数据
--先插入(S2,盛锡,10,北京)到S表中
INSERT INTO S
VALUES ('S2','盛锡','10','北京')

--将(S2,J6,P4,200)插入供应情况关系。
INSERT INTO SPJ(SNO,JNO,PNO,QTY)
VALUES ('S2','J6','P4',200);

你可能感兴趣的:(SQL数据库,数据库,sql)