数据更新数据库实验3.docx

上传人:b****1 文档编号:228577 上传时间:2023-04-28 格式:DOCX 页数:18 大小:389.92KB
下载 相关 举报
数据更新数据库实验3.docx_第1页
第1页 / 共18页
数据更新数据库实验3.docx_第2页
第2页 / 共18页
数据更新数据库实验3.docx_第3页
第3页 / 共18页
数据更新数据库实验3.docx_第4页
第4页 / 共18页
数据更新数据库实验3.docx_第5页
第5页 / 共18页
数据更新数据库实验3.docx_第6页
第6页 / 共18页
数据更新数据库实验3.docx_第7页
第7页 / 共18页
数据更新数据库实验3.docx_第8页
第8页 / 共18页
数据更新数据库实验3.docx_第9页
第9页 / 共18页
数据更新数据库实验3.docx_第10页
第10页 / 共18页
数据更新数据库实验3.docx_第11页
第11页 / 共18页
数据更新数据库实验3.docx_第12页
第12页 / 共18页
数据更新数据库实验3.docx_第13页
第13页 / 共18页
数据更新数据库实验3.docx_第14页
第14页 / 共18页
数据更新数据库实验3.docx_第15页
第15页 / 共18页
数据更新数据库实验3.docx_第16页
第16页 / 共18页
数据更新数据库实验3.docx_第17页
第17页 / 共18页
数据更新数据库实验3.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据更新数据库实验3.docx

《数据更新数据库实验3.docx》由会员分享,可在线阅读,更多相关《数据更新数据库实验3.docx(18页珍藏版)》请在冰点文库上搜索。

数据更新数据库实验3.docx

数据更新数据库实验3

 

数据库基础与实践实验报告

 

实验三数据更新

 

班级:

惠普测试142班

学号:

**********

姓名:

***

日期:

2016.11.9

 

1实验目的:

1)掌握SQL进行数据添加的方法;

2)掌握SQL进行数据修改的方法;

3)掌握SQL进行数据删除的方法。

2实验平台:

操作系统:

Windowsxp。

实验环境:

SQLServer2000以上版本。

3实验内容与步骤

利用实验一创建的sch_id数据库完成下列数据更新,并对语句的功能进行测试。

1.向数据库的每张用户表(除SC表)中至少添加3条元组,其中S表中插入2位计算机专业的同学,一位非计算机专业的同学。

代码:

insertintoDvalues('D4','动漫')

insertintoDvalues('D5','体育')

insertintoDvalues('D6','金融')

insertintoTvalues('T7','张三','男','30','教授','2000','2000','D4')

insertintoTvalues('T8','李四','男','35','讲师','1200','1500','D5')

insertintoTvalues('T9','王五','女','40','副教授','1400','1500','D6')

insertintoSvalues('S9','李华','男','20','D1')

insertintoSvalues('S10','张明','男','21','D1')

insertintoSvalues('S11','张丽','女','23','D5')

insertintoSvalues('S12','王华','女','18','D6')

insertintoSvalues('S13','李欣美','女','18','D4')

 

insertintoCvalues('C6','语文','36')

insertintoCvalues('C7','线代','40')

insertintoCvalues('C8','数据库','36')

insertintoCvalues('C9','马克思','36')

insertintoTCvalues('T7','C6')

insertintoTCvalues('T8','C7')

insertintoTCvalues('T8','C8')

insertintoTCvalues('T9','C9')

运行结果截图:

2.向SC表中插入选课记录,为计算机专业的同学选上全部课程,成绩取值为空值。

代码:

deletefromSCwhereexists(select1fromS,DwhereSC.sno=S.snoandS.dno=D.dnoandD.dn='计算机')

insertintoSC(sno,cno)selectsno,cnofromS,C,DwhereS.dno=D.dnoandD.dn='计算机'

运行结果截图:

SC表数据更新后的查询结果截图:

select*fromSC

3.将课时大于等于80学时的课程全部改为72学时。

代码:

selectcno课程编号,cn课程名,ct课时fromCwherect>=80

updateCsetct=72wherect>=80

selectcno课程编号,cn课程名,ct课时fromCwherect=72

测试记录:

C表数据更新前的查询结果截图:

更新语句运行结果截图:

C表数据更新后的查询结果截图:

4.删除成绩为空值的选课记录。

代码:

selectsno学号,cno课程编号,score分数fromSCwherescoreISNULL

deletefromSCwherescoreISNULL

selectsno学号,cno课程编号,score分数fromSC

测试记录:

SC表数据更新前的查询结果截图:

运行结果截图:

SC表数据更新后的查询结果截图:

5.删除姓名为刘伟的老师的授课记录。

代码:

selecttn教师姓名,cn所授课程fromTC,T,CwhereTC.tno=T.tnoandTC.cno=C.cnoandT.tn='刘伟'

deletefromTCwheretno=(selecttnofromTwheretn='刘伟')

selecttn教师姓名,cn所授课程fromTC,T,CwhereTC.tno=T.tnoandTC.cno=C.cnoandT.tn='刘伟'

测试记录:

T表数据更新前的查询结果截图:

运行结果截图:

T表数据更新后的查询结果截图:

6.调整岗位津贴,教授岗贴增长10%,副教授岗贴增长20%,讲师岗贴增长30%。

代码:

selecttn姓名,prof职称,sal工资fromTwhereprof='教授'

unionall

selecttn姓名,prof职称,sal工资fromTwhereprof='副教授'

unionall

selecttn姓名,prof职称,sal工资fromTwhereprof='讲师'

--updateTsetsal=sal*1.1whereprof='教授'

--updateTsetsal=sal*1.2whereprof='副教授'

--updateTsetsal=sal*1.3whereprof='讲师'

--一条update语句实现

updateTsetsal=sal*caseprof

when'教授'then1.1

when'副教授'then1.2

when'讲师'then1.3

end

whereprofin('教授','副教授','讲师')

测试记录:

T表数据更新前的查询结果截图:

运行结果截图:

T表数据更新后的查询结果截图:

7.将基本工资低于平均基本工资的教师的工资增长10%。

代码:

selecttn姓名,prof职称,sal工资fromTwheresal<(selectavg(sal)fromT)

updateTsetsal=sal*1.1wheresal<(selectavg(sal)fromT)

selecttn姓名,prof职称,sal工资fromT

测试记录:

T表数据更新前的查询结果截图:

运行结果截图:

T表数据更新后的查询结果截图:

8.将基本工资低于同职称教师基本工资的教师工资增长10%。

代码:

selecttn姓名,prof职称,sal工资fromTorderbyprof,saldesc

selecttn姓名,prof职称,sal工资fromTt1whereexists

(select1fromTwheret1.sal

orderbyprof,saldesc

updateTsetsal=sal*1.1fromTt1whereexists(select1fromTwheret1.sal

selecttn姓名,prof职称,sal工资fromTorderbyprof,saldesc

测试记录:

T表数据更新前的查询结果截图:

查询基本工资低于同职称教师基本工资的教师:

运行结果截图:

T表数据更新后的查询结果截图:

4讨论

1)构造一个新的数据更新需求,并用带exists的子查询完成该数据更新。

--将工资和奖金都低于2500元的教师的奖金提高10%

updateTsetcomm=comm*1.1fromTt1wherenotexists(select1wheret1.sal>=2500orm>=2500)

2)如果要修改S表中一位已经选过课的学生的学号(例如:

学号从1010101010改为1111111111),请给出具体的数据更新步骤。

--向S和SC表插入新纪录

insertintoSselect'1111111111',sn,sex,age,dnofromSwheresno='1010101010'

insertintoSCselect'1111111111',cno,scorefromSCwheresno='1010101010'

--从S和SC表删除旧记录:

deletefromSCwheresno='1010101010'

deletefromSwheresno='1010101010'

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2