数据更新(数据库实验3).docx
数据库基础与实践实验报告实验三数据更新班级:惠普测试142班学号:水姓名:* 米日期:2022.11.91实验目的:1)掌握SQL进行数据添加的方法;2)掌握SQL进行数据修改的方法;3)掌握SQL进行数据删除的方法。2实验平台:操作系统:Windows xpo实验环境:SQL Server 2000以上版本。3实验内容与步骤利用实验一创建的sch_id数据库完成下列数据更新,并对语句的功能进行测试。1 .向数据库的每张用户表(除SC表)中至少添加3条元组,其中S表中插入2位计算机专业的同 学,一位非计算机专业的同学。代码:inscrintoD values (1)4,'动漫)inserintoDValUeS(D5,'体育)inserintoDValUeS(D6'金融)inserintoTvalues(T7'张三,男"30'教授,,2000"2(X)0"D4)InserintoTvalues(T8,李四',男,35'讲师,11200" 1500,'D5)inserintoTvalues (T9.王五,女,'4(/副教授:14(Xrl 5(XrD6)inserintoS values inserintoSvalues inserintoS values inserintoSvalues inserintoSvalues(S9,"李华'男 2)Dl) (SIQ张明,男WDl)(Sll,张丽',女 2D5) Glr华IMCl8 ,"D6)(S13李欣美女'8"D4)inscritoC VHueS(C¾ 语文,36Y insertntoC VaIUeS(C7名戈代 MOY ireerinoCvate(C8;数据库 36Y iriuC VaiLEs(C马克思笺insertntoTCvalues (T7, C6)inserintoTCvalues (T8, C7)inserintoTCvalues (T8, C8)inserintoTCvalues (9l, C9)运行结果截图:Morosoft sat senrManogement SUdio口 ×*ff 嫔 BQ V 五染0 卿。DJ ILT C(W E /0 用新逮亚问)帆,执行J 马三漳M qX,J 询 D Xl?nse)t54inta B M 界;n(,温 动 SKTOP BURIEBG5ChJdfo) DESXTOP-A R1 EBG sdiW 闻DESKTOP.BRlEBGedMtt)Ce׫5。- 9. ,20-8.R1E80SOL'Sfi库1行受影响英军快景i行受制微PXSU行受影稍:aortSarvv行受彩鲍ParSarWqCfnP cd1行受影响她*率关系国nt行受彰喻玉臻U1行受影响 dbocI行受影h(IhaDdbasI行殳哨)dbo.sc1行受影响!dba.T dba明4行受响)- RI1行受影响风义词UJ读形行受影响).> SMVi6 Bmknr11行受影0t. 12S1行受影响Choal8行受影却生信田Ir-,如已成功执行,DTSKTOP BRttBG 1(IO R1MEHSKTOP BRIERGjen 53> id00:00:00 Wf行19列IOilEaMIG刺中 2022/11/DESKTOP-8JR1E8G. sch_id - dbo. DESKTOP-8JR1E8G. sch_jd- <lbo. D 20221109. sql-DES. -8JRlE8Gyan(53)toSeXagerofSdco<randho庄琴媒女39讲师30003600DlT2庄晓媒女36讲师36003600D2T3单雨单男26教授10003600DlT4单雨其男35助教2000QQQD3T5王健林男36岛教援35002900D2T6吴哥窟男26讲师300025003T7张三为30教授20002000D4TB李四男35讲加12001500D5T9王五女40画教授MOO1500D6米NLLMLNLMLMLMuLMLLMULLDESKTOP-8JR1E8G. SCh id- dbo. D 20221】09. Sq I dnodhDESKTOP-8JR1E8G. sch id- dbo. D20221109. Sq1dnodhIM动漫Dl计算机D6金融D2数学D5体育D3英语米NLMLDESKTOP-8JR1E8G. sch_id-dbo. SDESKTOP-8JR1E8G. sch_id - dbo. T DESKTOP-8JR1E8G.Snosnsexagedno笑笑女19D3SlO张明男21DlSll张丽女23D5S12王华女18D6S13李欣美女18D4S2小芳女21DlS3小三男24D3S4孙册女23DlS5小明男20DlS6小红女18D2S7小翠女20D2S8刘静女22D3S9李华男20Dl米NLLLNLLNLNLLLMLDESKTQP-8JR1E8G. sch_id - dbo.C 20221109, sql-DES. 8JRlE8Gyan (53)cnocnCtClc+48C2大学英语48C3JAVA36C4大学数学43C5Python36C6语文36C7线代10C8数据库36C9马克思36米NLLNLILNLLLDESKTOP-8JR1E8G. sch id -dbo. TC20221109. sql-DES.tnocnoC2T2C3T2C4T3ClT3C2T3C4T3C5T4ClT5C4T7C6T8C7T8C8T9C9米NLLML2 .向SC表中插入选课记录,为计算机专业的同学选上全部课程,成绩取值为空值。代码:deletfimSC where CxistsselectlfromSJD where SCsno=Ssno and S.dno=D.dno and Ddn=计算机)inserintSC(SnO,cno) selecsno,cno fimS,CJ) wiere Sxlno=Dxlno and D.dn=/计算机,运行结果截图:delete from SC where existo (select 1 from S, D where SC. ano-S. ono and s. dno-D. dno and 1). dn-'计驿机insert into SC(anc, ono) aelect ano, anc from S, C, D where S. dna=D. dnc and D. dn='计算机,消息45行受影响SC表数据更新后的查询结果截图:select from SCselect fro SC结果 消息snocnoscore1SlCl952SlC2983SlOClNULL4SlOC3NULL5S3C3976SlOC5NULL7SlOC4NULL8S6C3769S7Cl5810SlOC2NULL11SlOC9NULL12S6C59413SlOC8NULL14SlOC7NULL查询已成功执行。select * from SC结果消息snocnoscore39S5C9NULL40S5C8NULL41S5C7NULL42S5C6NULL43S9ClNULL44S9C3NULL45S9C5NULL46S9C4NULL47S9C2NULL48S9C9NULL49S9C8NULL50S9C7NULL51S9C6NULL查询已成功执行。3 .将课时大于等于80学时的课程全部改为72学时。代码:SeleCtno课程编号,cn课程名,Ct课时fromC wherecb=80UpdateC setct=72 where cb=80SdeCCnO课程编号,cn课程名,Cl课时fimC wherect=72 测试记录:DESKTOP-8JR1E8G. schid- dbo. C-20221109. sq 1 DES.cnoanCtClc+48C2大学英语80C3JAVA35C4大学数学80C5Python36C6语文36C7线代40C8数据库36C9马克思36米NLLLNLLNLLLC表数据更新前的查询结果截图:select CnO课程编号,Cn课程名,Ct课时from C where ct>=80<结果消息课程爆号课程名课时1大学英语802C4大学数学80更新语句运行结果截图:update C set ct=72 where ct>=80消息(2行受影响)C表数据更新后的查询结果截图:Seleet CnO课程编号,CrI课程名,Ct课时from C Where ct>=80” 消息课程编号课程名课时select CnO课程编号,Cn课程名,Ct课时from C where ct=72结果 消息课程编号课程名课时1C2大学英语722C4大学数学724 .删除成绩为空值的选课记录。代码:SCICCSnO 学号,cno 课程编号,SCore分数 fimSC where scorcIS NULLdeletd romSC where scoreIS NULLselecsno学号,CnO课程编号,SCom分数SxxnSC测试记录:IDESKTQP-8JR1E8G. sch id - dbo. SC 20221109. sql-DES.snocnoscoreSlCl95SlC298S2C297S2C359S3C397S4C499S5C4!)2S6C376S7Cl58S4C256S5C586S6C594S2C5CS2C233SlOC6NULLS2C7NULS4C8NULLS5C9NULLS9C8NUL米NLLLNLLLNULLSC表数据更新前的查询结果截图:select Sno 学号,CnO 课程编耳.SCOre 分数 from SC who re SCoreIS MLL结果 消息学号课程编号分数1SIOC6NULL2S2C7NULL3S4C8NULL4S5C9NULL5S9C8NULL运行结果截图:delete from SC where score IS NULI消息(5行受影响)SC表数据更新后的查询结果截图:select sno 学号,cno 课程编号,score 分数 from SC结果 消息学号课程编号分数1S1952SlC2983S2C2974S2C3595S3C3976S4C4997S5C4928S6C3769S7C15810S4C25611S5C58612S6C59413S2C56714S2C233I查询已成功执行。5.删除姓名为刘伟的老师的授课记录。代码:SdeCtn 教师姓名,cn 所授课程 fromTC,T,C where TC.tno=T.tnoand TC.cno=C.cno andT.m=刘伟,deletd x>mTC where tno=(selectnofimT where tn=刘伟)selectn 教师姓名,cn 所授课程 fromTC.T,C where TC.tno=T.tnoand TC.cno=C.cno andT.m刘伟'测试记录:DESKTOP 8JRlE8G. sch id- dbo.TC ESKTOP-8JR1E8G. sch id - dbo.T 20221109. sq - DES.-8JRlE8Gyan 53)thothSCXageprofsalCOmIdnoTl庄梦煤女39讲师30003600DlT2庄虎蝶女36讲新36003500呢T3单而童男26教授40003600DlT4单雨真男35助教20002000D3T5王健林男36副教授35002900D2T6吴哥常男9讲师30002500D3T7张三W30»»20002000D4T8刘伟男35讲部12001500D6T9王五女40副贼MOO1500D6MILMYXLNLNLNLLNLNirselect tn教师姓名,Cn所授课程frcm TC, T, C where TC. tnoT. tno and TC. cno-C. cno and T. tn-刘伟'结果消息教师姓名1刘伟所授课程 线代数据库2刘伟运行结果截图:7°TJxV 个T 主de I ete from IC where tnozz (se I ect tno from I where tn=刘 伟 )消息(2行受影响)T表数据更新后的查询结果截图:select tn教师姓名,Cn所授课程fron TC, T, C where TC. tno-T. cno and TC. cno-C. cnc and T. tn-刘伟结果 消息 教师姓名所授课程6.调整岗位津贴,教授岗贴增长10%,副教授岗贴增长20%,讲师岗贴增长30%。 代码:SdCCtn姓名,ProfliR称,Sal工资 fimT where pro*教授,unionallSCkCtn姓名,ProfliR称,Sal工资 fimT Wherc ProffK副教授unionallSCICCtn姓名,ProfIlR称,SaI工资fimT where冲闫讲师- tpdateT setsafak 1.1 where PrOf 教授,- tdateT setsat sakL2where pf 副教授,- tpdateT SetSafcak 1.3WhereProfV讲师,- 1条UPdate语句实现updateT Setsafsakcaseprofwhen '教授'then 1.1when 副教授'then 1.2when /讲师'then 1.3endwhere profin (教授;副教授,讲师)测试记录:DeSKTOA8JR1E8G. SChJd - dbo.T 20221109. sq 1-DES. -8JRlE8Gyan (53)tnotnsexageprofsalcomdno庄梦蝶女39讲师30003600DlT2庄晓蝶女36讲师36003600D2T3单雨通男26教授40003600DlT4单雨真男35助教20002000D3T5王健林男36面教损350029001)2T6吴哥窟男26讲师30002500D3T7张三W30教损20002000MT8刘伟!W35讲师12001500D5T9王五女40高教损140015001)6米NnNlllMlilMnlNIIINIlLLN,LLT表数据更新前的查询结果截图:<SUSUSelect tn In 1 on all姓名,Prof职称,Sal工资from T where Prot=(教授:elect tn inion al 1 ;eleet tn姓名,Prof职称,SalHWfron T where PrOf='副教授姓名,PrOf职称,Sal工资from T where PrOf二讲师结果 消息姓名职称工资1单雨童教授40002张三教授20003王健林副教授35004王五副教授14005庄梦蝶讲师30006庄晓蝶讲师36007吴哥窟讲师30008刘伟讲师1200运行结果截图:update T set sal=sal*l. 1 where Prof='教授 update T set sal=sal*l. 2 where prof=副教授 update T set sal=sal*l. 3 where Prof='讲师消息(2行受影响)2行受影响)4行受影响)T表数据更新后的查询结果截图:SeIeCt tn姓名,PrOf职称,SaI工资from T where Prof-I 教授union al 1rp 1 pr t tn 姓名,Prof 职称,SaI 工资 from T where PrOf='副教授union allselect tn 姓名,PrOf 职称,Sal 工资 from T where PrOf='讲师 update T set sal =sal *1. 1 where prof ='教授:upda te Tset sal =sal *1.2 where Prof='副教授!结果 消息姓名职称工资1单雨童教授44002张三教授22003王健林副教授42004王五副教授16805庄梦蝶讲师39006庄晓蝶讲师46807吴哥窟讲师39008刘伟讲师15607.将基本工资低于平均基本工资的教师的工资增长10%。代码:SeleCm 姓名,PrOfiR称,Sal工资 fromT where saK(selecavg(sa)fromT) updateT setsafsak 1.1 where sak(selectvg (sa)fromT)SeIeCtn姓名,Pro痛只称,SaI工资fimT测试记录:DESKTOP-8JR1E8G sch id -dbo.T 20221109. sql-DES. -8JRlE8Gyan (53)Ino加I sexaceprofsalCoaBdho庄孕蝶女39讲师39003600DlT2庄晓蝶女36讲师4580350002T3单雨量9J26教授44003500DlT4单南其JJJ35助教2000200003T5王健林男36副教授4200290002T6吴用血男26讲师39002500D3T7张三男30教授2200200011T8刘伟为35讲肺156015D5T9王五女40副教授1580150006米NuLNULMLINUl.NLNLNULMULT表数据更新前的查询结果截图:select tn姓名,Prof职称,Sal工资from T where sal<(select avg(sal)from T)结果消息姓名职称工资1单雨直助教20002张三教授22003刘伟讲师15604王五副教授1680运行结果截图:update T set sal=sal*l. 1 where sal<(select avg(sal) from T)消息(4行受影响)T表数据更新后的杳询结果截图:select tn 姓名,prf 职称,sa1 工SS frcm结果消息23姓名 庄梦蝶 庄晓蝶职称 讲师 讲师工资39004680单雨童教授44004单雨真助教220056王健也_ 吴哥窟_!嗷授 讲师420039007张三教授2420刘伟讲师17169王五副教授18488.将基本工资低于同职称教师基本工资的教师工资增长10%。代码:SeIeCln姓名,Pm瞅称,Sal工资 ftmToIderbyPSaldeSCScIoCtn姓名,Prof职称,SaI工资 3rnT thvhcrc exists (sclcctlfromT where t SaKsaIand proftlprofi orderby profsaldescupdateT setsafsak 1.1 fromT tlwhereexistsselectlfromT where tlsaksaland tlprofprof SeIeCtn姓名,pro痛只称,Sal工资 GumToEe由y pEsaldesc测试记录:DESKTOP-8JR1E8G. sch_id-dbo. T20221109. sql-DES. -BJRlEBGyan (53)tnotnsexageProfsalcoondnoTl庄梦蝶女39m39003600DlT2庄晓蛛女36讲师46803600D2T3单雨Jfi男26««44003600DlT4单雨亮男3522002000D3T5王健林W36高数受42002900D2T6吴哥宜男26济师39002500D3T7张三男3024202000D4T8刘伟男35讲师1716.00000000.1500D61;»王五女40高如1848.00000000isOaD5米MILMlLMUMUfNULnullNULLNFT表数据更新前的查询结果截图:select tn姓名,prof 职称,Sal工资 from T order by prof , sal descselect distinct 11. tn姓名,Il-PrOf 职称,tl . sal I:资 from T 11 , T t2 where 11 . s- di StinCt优化select tn姓名,PrOf 职称,Sal 工资 from T t J where exists (select 1 from I wher结果消息姓名瞬工资1王健林副教授42002王五副教授18483庄晓蝶讲师46804吴哥窟讲师39005庄梦蝶讲师39006刘伟讲师17167单雨童教授44008张三教授24209单雨真助教2200查询已成功执行。查询基本工资低于同职称教师基本工资的教师:select tn姓名,PrOf职称,Sal工资from T 11 where exists (select 1 from T where 11. sal<sal and prof=tl. prof) order by prof, sal desc结果 消息姓名职称工资1王五副教授18482庄梦蝶讲师39003吴哥窟讲师39004刘伟讲师17165张三教授2420运行结果截图:update T set sal=sal*l. 1 fron T tl where exists (select 1 fron T where tl. salcsal and tl. prof=proE) select In姓名,Pror职称,Sal工资trom f order by ror , sal desc消息(S行受影响)T表数据更新后的查询结果截图:select tn姓名,Prof职称,Sal工资from T order by prof , sal desc结果消息姓名职称工资1王健林副教授42002珏歌授2032. 83庄晓蝶加46804吴哥窟讲师42905庄梦蝶讲师42906刘伟讲师1887.67单雨童教授44008张三教授26629单雨真助教22004讨论1 )构造一个新的数据更新需求,并用带exist的子查询完成该数据更新- 将工资和奖金都低于2500元的教师的奖金提高10%UpdateT setcomm =comm *1.1 fromT tlwhere notexistsselectlwhere t sab=2500 ort Icomm >=2500) 2)如果要修改S表中一位已经选过课的学生的学号(例如:学号从I(H(HoIolO改为IllIlllII 1), 请给出具体的数据更新步骤。- 向S和SC表插入新纪录insert into S select '111 Illl II, sn. sex. age,dno from S where sno='10l010l0i0,insert into SC select '111111111 . cno, sre from SC where sno =1010l010l0'- -从S和SC表删除旧记录:delete from SC where sno =101010l0l0,deletefrom S where sno =/1010101010,