数据库实验—更新操作

在这里插入图片描述

  • 张兰老师因评上教授,需将其职称(Tprof)由副教授改为教授,并将工资(Tsal)改为3900,岗位津贴(Tcomm)改为2400

    update Teachers set Tprof='教授',Tsal=3900,Tcomm=2400 
    where Tname='张兰' 
    
  • 分别任命李力、张兰和张雪为本学院的院长

    update Department set Dheader = DT.Tno
    from Department D,(select Dno,Tno from Teachers 
    where Tname in ('李力','张兰','张雪')) DT
    where D.Dno = DT.Dno
    
  • 用学号为2014112103的学生的数据结构课程的补考成绩63分,更新原有的考试成绩。

    update Reports set Grade=63 
    from Reports R,Courses C
    where R.Sno='2014112103' and C.Cname='数据结构' and C.Cno = R.Cno
    
  • 2018第1学期,为20171151班的所有学生开设了计算机网络课程,并由“许永军”教授进行授课,请根据要求,完成对各基本表的更新操作。

    • 分两步走,涉及到两份表
    • 可以为空的就不用插入,比如评价这些,我们无法直接插入
    • TutID使用newid函数来创建唯一的值(之前的博客说过
    insert into Tutors(Tno,Cno,Tacademicyear,Tterm,Sclass,TutID) 
    values((select Tno
    		from Teachers
    		where Tname='许永军'),
    		(select Cno
    		from Courses 
    		where Cname='计算机网络'),
    		2018,1,'20171151',newid()
    		)
    
    insert into Reports(Sno,Cno,Racademicyear,Rterm)
    values(select S.Sno ,C.Cno,2018,1
    		from Courses C ,Students S
    		where C.Cname='计算机网络' and Sclass='20171151')
    
  • 学号为2017120202的学生因病退学了,需要将他的相关信息全部删除

    delete from Reports where Sno='2017120202'
    delete from Students where Sno='2017120202'
    
  • 因为培养方案改变,需要将计算机组成原理这门课的学分改为4分,学时改为48,前序课程改为编号为112p0021的课程

    update Courses set Ccredit=4,Chours=48,Pre_Cno='112p0021' 
    where Cname='计算机组成原理'
    
  • 李桂清教授光荣退休了,需要将他在2018学年第2学期给20161121班的学生所上的数字图像制作课程将改由李力授课。

    update Tutors set Tno=(select Tno from Teachers where Tname='李力')
    from Tutors Tu
    where Tu.Tno=(select Tno from Teachers where Tname='李桂清')
    and Tu.Sclass='20161121'
    and Tacademicyear=2018 and Tterm=2 
    and Cno=(select Cno from Courses where Cname ='数字图像制作')
    
  • 学号为2017120201的学生转专业了,转到了计算机与信息工程学院的计算机科学与技术(非师范)专业,更新他的专业号与学院号。

    update Students 
    set 
    Mno=(select Mno from Major where Mname='计算机科学与技术(非师范)'),
    Dno=(select Dno from Department where Dname='计算机与信息工程学院')
    where Sno='2017120201'
    
  • 学号为2015210101的学生在大三第一学期时选修了操作系统这门课程,在选课表添加记录

    insert into Reports(Sno,Cno,Racademicyear,Rterm)
    values('2015210101',
    		(select Cno 
    		from Courses
    		where Cname='操作系统'),
    		2018,1
    		)
    
  • 计算机与信息工程学院新来了一位叫王红的男老师,教师编号是T012,职称是副教授,工资和岗位津贴与张兰老师一样。

    • 在本题中学到了可以通过select查询批量插入,但是不能用values(括住select来插入)
    insert into Teachers(Tno,Tname,Tgender,Dno,Tprof,Tsal,Tcomm)
    select 'T012','王红','男',D.Dno,'副教授',T.Tsal,T.Tcomm
    from Department D,Teachers T
    where T.Tname='张兰' and D.Dname='计算机与信息工程学院'
    
  • 学院表更新表格信息,新增了新的学院,学院号是23,学院名称是材料学院,学院院长为赵飞燕老师。

    insert into Department values('23','材料学院',
    	(select Tno from Teachers where Tname='赵飞燕'))
    
  • 学生张勇在注册时填错学生信息,现在需要将其生源地改为广西桂林,将出生日期往后增加5天。

update Students set Snative='广西桂林',Sbirth=dateadd(day,5,Sbirth)
where Sname='张勇'

总结:无论是更新还是删除,这俩操作十分危险,如果没写where筛选条件就会将所有都批量更新或者删除掉,在本实验中本人已经吃过教训了,忘记写条件update了整个表,长记性了就不会忘记了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹等寒

谢过道友支持,在下就却之不恭了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值