数据实验4 数据更新.docx
《数据实验4 数据更新.docx》由会员分享,可在线阅读,更多相关《数据实验4 数据更新.docx(14页珍藏版)》请在冰豆网上搜索。
数据实验4数据更新
实验题目
数据更新
小组合作
无
一、实验目的
1.掌握向表中插入一个或多个元组的方法。
2.掌握删除表中一个或多个元组的方法。
3.掌握修改表中一个或多个元组的方法。
二.实验环境
一台装有SQLServer2005的PC机
三、实验内容与步骤
实验准备:
1.以最便捷的方式在EDUC数据库中新建3张表
2.利用企业管理器向表中插入记录
实验内容
1.插入学生记录(学号:
95030,姓名:
李莉,年龄:
18)
2.插入选课记录(95030,1)
3.计算机系学生年龄改成20
4.数学系所有学生成绩改成0
5.把低于总平均成绩的女同学成绩提高5分
6.修改2号课程的成绩,若成绩小于75分则提高5%,成绩大于75时提高4%(两个语句实现,注意顺序)
7.删除95030学生信息
8.删除SC表中无成绩的记录
9.删除王敏的选课记录
10.删除不及格的学生选课记录
11.删除信息系所有学生选课记录
12.删除所有未被选修的课程
13.查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,把值送往另一个以及存在的基本表STU(SNO,SNAME,SSEX)中
14.建立一个sdeptgrade表,包含(sdept,avggrade)字段,对每一个系,求学生的成绩,并把结果存入sdeptgrade
四、实验过程与分析
1.插入学生记录
insertintostudent(sno,sname,sage)values('95030','李莉','18');
2.插入选课记录
insertintoSC(sno,cno)values('95030','1');
3.计算机系学生年龄改成20
updatestudentsetsage=20wheresdept='CS';
4.数学系所有学生成绩改成0
updateSCsetgrade=0where'MA'=
(selectsdeptfromstudentwherestudent.sno=sc.sno);
5.把低于总平均成绩的女同学成绩提高5分
updatescsetgrade=grade+5where
grade<(selectAVG(grade)fromSC)and
'女'=(selectssexfromstudentwherestudent.sno=Sc.sno);
6.修改2号课程的成绩,若成绩小于75分则提高5%,成绩大于75时提高4%
updateSCsetgrade=grade*(1+0.04)wheregrade>75andcno='2';
7.删除95030学生信息
deletefromscwheresnoin(selectsnofromscwheresno='95030')
deletefromstudentwheresnoin(selectsnofromstudentwheresno='95030')
8.删除SC表中无成绩的记录
deletefromScwheregrade=null;
9.删除王敏的选课记录
deletefromscwheresno=
(selectsnofromstudentwheresname='王敏');
10.删除不及格的学生选课记录
deletefromSCwheregrade<60;
11.删除信息系所有学生选课记录
deletefromSCwhere'IS'=
(selectsdeptfromstudentwherestudent.sno=sc.sno);
12.删除所有未被选修的课程
deletefromcoursewherenotexists
(select*fromscwhereo=o);
13.查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,把值送往另一个以及存在的基本表STU(SNO,SNAME,SSEX)中
selectsno,sname,ssexintoSTUfromSTUDENTwheresnoin(selectsnofromSCgroupbysnohavingmin(grade)>=80);
14.建立一个sdeptgrade表,包含(sdept,avggrade)字段,对每一个系,求学生的成绩,并把结果存入sdeptgrade
createtablesdeptgrade(sdeptchar(10)primarykey,avggradeint,)
insertintosdeptgradeselectSTUDENT.sdept,AVG(SC.grade)
fromSTUDENTjoinSCon(STUDENT.sno=SC.sno)groupbySTUDENT.sdept;
五、实验总结
1、在执行第7题时开始约束受限制,加上级联删除,对勾检查又说有语义错误,最后改为先删除95030在sc表的内容,再删除其在student中的信息就成功了
2、在执行第8题是出现0行受影响,是因为前面进行的数据更新操作,是数据对此条操作有影响
3、在做13,14题时觉的很有难度,但是经过和同学讨论,查阅资料得到了解决。
4、通过本次试验我掌握了向一个表中插入、删除修改表中一个或多个元组的方法。
加深了自己对于表的理解和认识。
5、同时,对于视图的创建、查询和更新操作也有了新的理解和学习,强化了对课本知识的学习,在实验中反复修正、对照使自己可以学的更扎实。