数据库实验三——数据更新操作中经典题、难题以及易错题合集(含数据导入导出操作详细教程)

📘本专栏文章主要是争对博主在学习《数据库原理及应用》课程时老师布置的课后练习题做出的解答,如果遇到相同的题目建议看着本文自己动手实践一遍,这样才能加深印象。
🎈如果想要了解数据库有关知识点的话,可以点击下方链接进行查看
🔑 本专栏地址【数据库练习题
🔑有关数据库的知识点请戳⏩【数据库知识点总结
🔑 另一个正在更新的专栏【拼图小游戏(Java)

一、前言

本文主要是罗列了一些有关于数据更新操作的难题、易错题

二、所要使用表

StuInfo

SIDSNameSexBirthdayDeptMajorClassGrade
05000002孙雯1983-08-05 00:00:00计算机系计算机科学计科1班05级
05000004苏小明1984-12-21 00:00:00计算机系计算机科学计科1班05级
05000005周小杰1985-06-01 00:00:00计算机系计算机科学计科1班05级
05000006李建国1985-05-01 00:00:00管理系计算机科学计科1班05级
05010002徐贺菁1985-03-15 00:00:00管理科学与工程系信息管理信管2班05级
06010001陈平1986-05-10 00:00:00管理科学与工程系信息管理信管1班06级
07011103林敏1985-05-04 00:00:00管理科学与工程系多媒体NULLNULL
04000002李华1985-03-05 00:00:00管理科学与工程系信息管理信管1班05级
05000001李丽1985-07-24 00:00:00计算机系计算机科学与技术计科1班05级

TchInfo

TIDTNameSexBirthdayTitleDep
00000001黄贺贺1977-01-15 00:00:00讲师基础部
01000001王晓红1958-01-01 00:00:00副教授计算机系
01000002李小波1959-08-11 00:00:00教授计算机系
01000003谈华1962-05-01 00:00:00教授计算机系
01000004黄利敏1976-03-21 00:00:00讲师计算机系
01000005曹珊珊1982-12-12 00:00:00助讲计算机系
01000909王小小1999-01-04 00:00:00副教授计算机系
01000991王红1956-01-01 00:00:00教授基础部
01000999王多多1979-01-04 00:00:00副教授基础部
02000002李丽丽1972-11-12 00:00:00副教授管理科学与工程系

三、表数据的插入

1.题目

通过SQL命令完成在in_test表中插入StuInfo表中全部女生的学号、姓名、系

2.思路

  • StuInfo表中筛选
  • 筛选条件:Sex = '女'
  • 所需属性:学号、姓名、系
  • 插入命令:INSERET INTO 表名(属性)

3.完整语句

INSERT INTO in_test(SID,SNAME,Dept) SELECT SID,SNAME,Dept FROM StuInfo WHERE Sex = '女'

4.测试语句

在这里插入图片描述
右键点击in_test表,选择“编辑前200行”,查看目前表内数据
在这里插入图片描述

四、数据的导出

选择数据库TeachingData,将表TchInfo、StuInfo导出到SQL脚本文件中;注意:表中数据一起导出

  • 右键选择数据库TeachingData后选择任务中的生成脚本
    在这里插入图片描述
  • 在选择对象中选选择特定数据库对象后选择我们需要的表TchInfo、StuInfo
    在这里插入图片描述
  • 后续就是默认选择,如果需要可以更改一下保存的地址
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

五、数据的导入

编辑生成的脚本文件Script.sql并执行,使数据库School1利用脚本文件生成表TchInfo和StuInfo

  • 点击左上角文件,选择打开中的文件,打开我们刚刚保存的sql文件
    在这里插入图片描述

在这里插入图片描述

  • 修改一下USE后数据库的名称,再执行
    在这里插入图片描述

  • 刷新一下数据库,查看是否创建成功
    在这里插入图片描述

  • 创建成功后,要将teachingData中数据复制到School1的数据库中,右键选择teachingData后选择任务导出数据

  • 数据源选择teachingData
    在这里插入图片描述

  • 目标数据库选择题目中的School1

在这里插入图片描述

  • 选择复制所有数据
    在这里插入图片描述
  • 选择表TchInfo、StuInfo
    在这里插入图片描述
  • 选择立即运行
    在这里插入图片描述

在这里插入图片描述

  • 刷新一下数据库,对比两个数据库中表格数据是否相同
    在这里插入图片描述

六、表数据的修改

1.题目

利用SQL语句在teachingData数据库的StuInfo表中,将ScoreInfo表中分数最高的学生其所在班级修改为“计科2班”

2.思路

  • 更新数据:UPDATE StuInfo SET Class = '计科2班' WHERE ···
  • 筛选条件:StuInfo.SID = 分数最高的学生SID
  • 学生SID要从StuInfo表中获取
  • SID的条件:从ScoreInfo表中查找分数最高的学生的SID

3.完整语句

UPDATE StuInfo SET Class = '计科2班' 
WHERE StuInfo.SID  = ANY (SELECT StuInfo.SID FROM StuInfo GROUP BY StuInfo.SID 
HAVING SID  = ANY (SELECT SID FROM  ScoreInfo  GROUP BY SID,Score 
HAVING SCore = (SELECT MAX(Score) FROM ScoreInfo)))

在这里插入图片描述

4.测试代码

在这里插入图片描述
在这里插入图片描述

七、表数据的删除

1.题目

删除School数据库下Sinfo表中学号为21001001的学生

2.易错点

选中要删除的那行数据,delete键删除后出现报错,如下图所示
在这里插入图片描述

3.错误原因

学号为21001001的学生在别的表中也有数据,如ScoreInfo表中也含有学号为21001001的学生

4.解决方法

解决方法:先删除ScoreInfo表中学号为21001001的学生即可

5.测试

在这里插入图片描述
在这里插入图片描述

八、结语

如果有任何疑问或者文中问题可以留言评论

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Alita11101_

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值