1、1练习题1、在学生表 Student 和学生选课表 SC 中分别添加如下两表中的记录。学生表 Student 学生选课表 SC学号(Sno)姓名(Sname)年龄(Sage)性别(Ssex)所在系(Sdept)98010 赵青江 18 男 CS98011 张丽萍 19 女 CH98012 陈景欢 20 男 IS98013 陈婷婷 16 女 PH98014 李 军 16 女 EH课程表 Course课程号(Cno)课程名(Cname)先修课号(Cpno)学分(Ccredit)2、备份 Student 表到 TS 中,并清空 TS 表。3、给 IS 系的学生开设 7 号课程,建立所有相应的选课记录
2、,成绩暂定为 60 分。4、把年龄小于等于 16 的女生记录保存到表 TS 中。5、在表 Student 中检索每门课均不及格的学生学号、姓名、年龄、性别及所在系等信息,并把检索到的信息存入 TS 表中。6、将学号为“98011”的学生姓名改为刘华,年龄增加 1 岁。7、把选修了“数据库系统”课程而成绩不及格的学生的成绩全改为空值(NULL) 。8、将 Student 的前 4 位学生的年龄均增加 1 岁。9、学生王林在 3 号课程考试中作弊,该课成绩改为空值(NULL) 。10、把成绩低于总平均成绩的女同学成绩提高 5。11、在基本表 SC 中修改课程号为“2”号课程的成绩,若成绩小于等于
3、80 分时降低2,若成绩大于 80 分时降低 1(用两个 UPDATE 语句实现)。12、利用“SELECT INTO ”命令来备份 Student、SC、Course 三表,备份表名自定。13、在基本表 SC 中删除尚无成绩的选课元组。14、把“钱横”同学的选课情况全部删去。15、能删除学号为“98005”的学生记录吗?一定要删除该记录的话,该如何操作?给出学号(Sno)课程号(Cno)成绩(Grade)98010 1 8798010 298010 3 8098010 4 8798010 6 8598011 1 5298011 2 4798011 3 5398011 5 4598012 1
4、8498012 398012 4 6798012 5 81数据库原理与应用实验指导 2操作命令。16、删除姓“张”的学生记录。17、清空 STUDENT 与 Course 两表。18、如何又从备份表中恢复所有的三表。3参考答案:1、在学生表 Student 和学生选课表 SC 中分别添加如下两表中的记录。Insert into Student values(98010,赵青江,18,男,CS)Insert into Student values(98011,张丽萍,19, 女,CH)Insert into Student values(98012,陈景欢,20, 男,IS)Insert int
5、o Student values(98013,陈婷婷,16, 女,PH)Insert into Student values(98014,李 军,16, 女,EH )Insert into SC values(98010, 1,87)Insert into SC values(98010, 2,null)或 Insert into SC(sno,cno) values(98010, 2)Insert into SC values(98010, 3,80)Insert into SC values(98010, 4,87)Insert into SC values(98010, 6,85)Ins
6、ert into SC values(98011, 1,52)Insert into SC values(98011, 2,47)Insert into SC values(98011, 3,53)Insert into SC values(98011, 5,45)Insert into SC values(98012, 1,84)Insert into SC values(98012, 3,null)或 Insert into SC(sno,cno) values(98012, 3)Insert into SC values(98012, 4,67)Insert into SC values
7、(98012, 5,81)2、备份 Student 表到 TS 中,并清空 TS 表。Select * into TS from Student Delete from TS 或 truncate table TS3、给 IS 系的学生开设 7 号课程,建立所有相应的选课记录,成绩暂定为 60 分。Insert into sc select sno, 7,60 from student where sdept=IS4、把年龄小于等于 16 的女生记录保存到表 TS 中。INSERT INTO TS SELECT * FROM STUDENT WHERE SAGE ALL (SELECT GRA
8、DEFROM SCWHERE SC.SNO=STUDENT.SNO)INSERT INTO TS SELECT * FROM STUDENT WHERE 60 (SELECT MAX(GRADE)FROM SCWHERE SC.SNO=STUDENT.SNO)INSERT INTO TS SELECT * FROM STUDENT WHERE NOT EXISTS (SELECT GRADE,SNOFROM SCWHERE SC.SNO=STUDENT.SNO AND GRADE=60)INSERT INTO TS SELECT * FROM STUDENT WHERE SNO IN (SEL
9、ECT SNOFROM SCWHERE SNO NOT IN (SELECT SNO FROM SC WHERE GRADE59)5- 如下有错,意为所有课程均学了,并均不及格。INSERT INTO TS SELECT * FROM STUDENT WHERE NOT EXISTS(SELECT * FROM COURSE WHERE NOT EXISTS (SELECT *FROM SCWHERE SNO=STUDENT.SNO AND CNO=COURSE.CNO AND GRADE80- 使用一条命令完成UPDATE SC SET GRADE=CASE WHEN GRADE80 THE
10、N GRADE*0.98ENDWHERE CNO=212、利用“SELECT INTO ”命令来备份 Student、SC、Course 三表,备份表名自定。7SELECT * INTO TSTUDENT FROM STUDENTSELECT * INTO TSC FROM SCSELECT * INTO TCOURSE FROM COURSE13、在基本表 SC 中删除尚无成绩的选课元组。DELETE FROM SC WHERE GRADE IS NULL14、把“钱横”同学的选课情况全部删去。DELETE FROM SC WHERE SNO IN (SELECT SNO FROM STUD
11、ENT WHERE SNAME=钱横)15、能删除学号为“98005”的学生记录吗?一定要删除该记录的话,该如何操作?给出操作命令。SC 表有“98005”学生选课记录时,不能删除;一定要删除得先删除 SC 中的选课记录。Delete from sc where sno=98005Delete from student where sno=9800516、删除姓“张”的学生记录。Delete from sc where sno in (select sno from student where sname like 张%)Delete from student where sname like
12、 张% 17、清空 STUDENT 与 Course 两表。Delete from scDelete from studentDelete from course18、如何又从备份表中恢复所有的三表。Insert into STUDENT select * from TSTUDENTInsert into COURSE select * from TCOURSEInsert into SC select * from TSC学生表 Student 学生选课表 SC学号(Sno)姓名(Sname)年龄(Sage性别(Ssex)所在系(Sdept)98010 赵青江 18 男 CS98011 张丽萍 19 女 CH98012 陈景欢 20 男 IS98013 陈婷婷 16 女 PH98014 李 军 16 女 EH数据库原理与应用实验指导 8学号(Sno)课程号(Cno)成绩(Grade)98010 1 8798010 298010 3 8098010 4 8798010 6 8598011 1 5298011 2 4798011 3 5398011 5 4598012 1 8498012 398012 4 6798012 5 81