数据库实验3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库基础与实践实验报告实验三数据更新
班级:惠普测试171
学号:1708090122
姓名:陶浩
日期:2019/10/12
1 实验目的:
1)掌握SQL进行数据添加的方法;
2)掌握SQL进行数据修改的方法;
3)掌握SQL进行数据删除的方法。
2 实验平台:
操作系统:Windows xp。
实验环境:SQL Server 2000以上版本。
3 实验内容与步骤
利用实验一创建的sch_id数据库完成下列数据更新,并对语句的功能进行测试。
1.向数据库的每张用户表(除SC表)中至少添加3条元组,其中S表中插入2位计算机专业的同
学,一位非计算机专业的同学。(计算机专业在专业表中的专业名为计算机)
代码:
insert C
values('C8','JAVA','80')
insert C
values('C9','C#','80')
insert C
values('C10','Python','80')
insert D
values('D6','健美')
insert D
values('D7','体操')
insert D
values('D8','华尔兹')
insert S
values('S10','艾米','男','21','D1')
insert S
values('S11','杜歌','男','22','D1')
insert S
values('S12','王北车','男','23','D7')
insert S
values('S13','张璐','女','24','D8')
insert S
values('S14','洛晴','女','25','D6')
insert T
values('T12','刘伟','男','33','教授','6666','1300','D5')
insert T
values('T13','张一阳','男','44','讲师','7777','2222','D6') insert T
values('T14','曲肖冰','女','22','助教','7222','1600','D7')
insert TC
values('T12','C7')
insert TC
values('T12','C4')
insert TC
values('T12','C8')
insert TC
values('T5','C9')
insert TC
values('T8','C5')
测试命令及测试运行截图:
2. 向SC 表中插入选课记录,为计算机专业的同学选上全部课程,成绩取值为空值。(计算机专业
在专业表中的专业名为计算机) 代码:
--既然要为计算机专业的学生选上全部课程,就要先删除计算机学生已经选过的课程
计算机学生:S1,S2,S5,S10,S11 insert SC (sno ,cno ) select sno ,cno from S ,D ,C
where S .dno =D .dno and D .dn ='计算机'
测试记录:
测试命令及测试运行截图:
3.将课时大于等于80学时的课程全部改为72学时。
代码:
update C set ct=72 where ct>=80测试记录:
测试命令及测试运行截图:
4.删除成绩为空值的选课记录。
代码:
delete from SC where score is null 测试记录:
测试命令及测试运行截图:
5.删除姓名为刘伟的老师的授课记录。代码:
delete from TC
where tno=(
select tno from T
where T.tno=TC.tno
and T.tn='刘伟'
)
测试记录:
测试命令及测试运行截图:
6.调整工资,教授工资增长10%,副教授工资增长20%,讲师工资增长30%。(用单条update命令
完成)
代码:
update T set Sal=Sal*
case prof
when'教授'then 1.1
when'副教授'then 1.2
when'讲师'then 1.3
end
测试记录:
测试命令及测试运行截图:
7.将工资低于平均工资的教师的工资增长10%。代码::
update T set Sal=Sal*1.1
where Sal<(
select AVG(Sal)
from T
)
测试记录:
测试命令及测试运行截图:
8.将工资低于同职称教师平均工资的教师工资增长10%。
代码:
方法1(两个表):
select prof,AVG(Sal)avg into THO from T group by prof select*from THO
--
update T set Sal=Sal*1.1
from T,THO
where T.prof=THO.prof
and T.Sal 方法2: update T set Sal=Sal*1.1 from T T1 where Sal<