1.学号为2014112103的学生的数据结构课程的补考成绩为63分,请用补考成绩更新原有的考试成绩。
UPDATE Reports
SET Grade=63
WHERE Sno='2014112103'
AND Cno=
(SELECT Cno FROM Courses
WHERE Cname='数据结构'
);
为表Tutors增加新列Tutid,将该列设置为第一列,并将Tutid列设置为自动增长的整数列,同时设置该列为主键
ALTER TABLE tutors
ADD Tutid INT AUTO_INCREMENT PRIMARY KEY FIRST;
2018学年第1学期,为20171151班的所有学生开设了计算机网络课程,并由“许永军”教授进行授课"
-- ① 先插入授课信息
INSERT INTO Tutors
(Tno,Cno,Tacademicyear,Tterm,Sclass)
VALUES
((SELECT Tno FROM Teachers WHERE Tname='许永军'),
(SELECT Cno FROM Courses WHERE Cname='计算机网络'),
2018,1,'20171151');
-- ② 再插入选课信息
INSERT INTO Reports
(Sno,Cno,Racademicyear,Rterm)
(SELECT Sno,Cno,2018,1
FROM Students, Courses
WHERE Sclass='20171151' AND Cname='计算机网络');
① 将选课表中对Sno的外键声明重新设置可为级联删除;② 再从学生表中将学号2017120202的学生信息删除"。
请根据要求完成操作,并回答以下问题:
① 能删除成功吗?
② 若删除失败,请说明原因;若删除成功,请说明删除后的结果是怎样的。
① 重新设置外键
ALTER TABLE reports
DROP CONSTRAINT FK_Sno;
ALTER TABLE reports
ADD CONSTRAINT FK_Sno FOREIGN KEY(Sno)
REFERENCES students(Sno)
ON DELETE CASCADE;
② 删除学生信息
DELETE FROM Students
WHERE Sno='2017120202';
(2)回答问题(2分)
① 删除成功
② 因为设置了级联删除,所以当删除学生表中的学生信息时,系统会自动将选课表中该位学生的选课信息一起删除