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

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

一、前言


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


二、所要使用表


StuInfo


SID SName Sex Birthday Dept Major Class Grade
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级
6010001 陈平 1986-05-10 00:00:00 管理科学与工程系 信息管理 信管1班 06级
07011103 林敏 1985-05-04 00:00:00 管理科学与工程系 多媒体 NULL NULL
04000002 李华 1985-03-05 00:00:00 管理科学与工程系 信息管理 信管1班 05级
05000001 李丽 1985-07-24 00:00:00 计算机系 计算机科学与技术 计科1班 05级


TchInfo


TID TName Sex Birthday Title Dep
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.测试语句


1235bde754ac4eeda0f7624af37846f0.png


右键点击in_test表,选择“编辑前200行”,查看目前表内数据


44632be595c64cd7ba456e7ffc1f82e6.png


四、数据的导出


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


  • 右键选择数据库TeachingData后选择任务中的生成脚本


a3d9640dbacb4113a028fd4c1118d710.png


  • 在选择对象中选选择特定数据库对象后选择我们需要的表TchInfo、StuInfo


595e7dc87e164456a016a5e23b515557.png


  • 后续就是默认选择,如果需要可以更改一下保存的地址


bffd466b233d49b481aff248483e5d8d.png

01d26ee54b9a48cdb285720ffaa671d3.png

a6fb56b063d649ef91d011e517f90346.png


五、数据的导入


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


  • 点击左上角文件,选择打开中的文件,打开我们刚刚保存的sql文件


f8a9dec51ca548dfa77d91e371599eb3.png


871078d8b10644109952a544877413d8.png


  • 修改一下USE后数据库的名称,再执行


e85fcb98796744f4b098f16407fb44fd.png


  • 刷新一下数据库,查看是否创建成功


fbd6ea847ca84acaa80e1a643a126d3e.png


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


924d893b278e401894b31930b5c12d79.png


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


81aded17b829410a94b3e7edf22a2420.png


  • 选择复制所有数据


35bfc005ea044e6b88dc4de31462940b.png


  • 选择表TchInfo、StuInfo


f35daeb3646b4d5cbcfa986c99310632.png


  • 选择立即运行


a914c0ea9d834b6aac0eef38e0e64afa.png

283890c64b51401d93b036ebe1ffead4.png


  • 刷新一下数据库,对比两个数据库中表格数据是否相同


259aa9c4328e4ffc9e4a0e07e335a12f.png


六、表数据的修改


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)))

f09c44dd9bc443048cda9685615a8c21.png


4.测试代码


085bd8f711684d4c8e1b82220ba56502.png

b2f34dd8197749828ec3448fed9427f8.png


七、表数据的删除


1.题目


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


2.易错点


选中要删除的那行数据,delete键删除后出现报错,如下图所示


40fe6febb54149e4a507c784aea84234.png


3.错误原因


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


4.解决方法


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


5.测试


52bf98b4f24249c491cc4f51fc609e22.png

52bf98b4f24249c491cc4f51fc609e22.png


八、结语


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

相关文章
|
23天前
|
存储 机器学习/深度学习 监控
南大通用GBase 8s数据库onbar基础使用教程
数据备份与恢复是确保数据安全和业务连续性的关键。onbar作为GBase 8s数据库的备份工具,需配合存储管理器使用,通过配置BAR_BSALIB_PATH等参数,实现数据的备份与恢复。本文详细介绍了onbar的配置、备份、恢复及监控流程,帮助数据库管理员构建高效的数据保护方案。
|
2月前
|
存储 SQL 关系型数据库
【入门级教程】MySQL:从零开始的数据库之旅
本教程面向零基础用户,采用通俗易懂的语言和丰富的示例,帮助你快速掌握MySQL的基础知识和操作技巧。内容涵盖SQL语言基础(SELECT、INSERT、UPDATE、DELETE等常用语句)、使用索引提高查询效率、存储过程等。适合学生、开发者及数据库爱好者。
63 0
【入门级教程】MySQL:从零开始的数据库之旅
|
2月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
3月前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
3月前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
2月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
87 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
2月前
|
SQL NoSQL MongoDB
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
51 0
|
2月前
|
存储 NoSQL API
.NET NoSQL 嵌入式数据库 LiteDB 使用教程
.NET NoSQL 嵌入式数据库 LiteDB 使用教程~
|
4月前
|
SQL 存储 小程序
【教程】navicat配合HTTP通道远程连接SQLite数据库
本文介绍了如何通过 Navicat Premium 工具配合 n_tunnel_sqlite.php 和 HTTP 通道远程连接服务器上的 SQLite 数据库。SQLite 是一种自给自足的、无服务器的 SQL 数据库引擎,由于其端口未对外开放,直接使用 Navicat 进行远程连接不可行。文章详细记录了使用 HTTP 通道实现远程连接的过程,包括定位本地 `ntunnel_sqlite.php` 文件,将其上传至服务器,并通过 Navicat 配置 HTTP 通道连接 SQLite 数据库的具体步骤。
220 0
【教程】navicat配合HTTP通道远程连接SQLite数据库
|
4月前
|
SQL 数据处理 数据库
SQL进阶之路:深入解析数据更新与删除技巧——掌握批量操作、条件筛选、子查询和事务处理,提升数据库维护效率与准确性
【8月更文挑战第31天】在数据库管理和应用开发中,数据的更新和删除至关重要,直接影响数据准确性、一致性和性能。本文通过具体案例,深入解析SQL中的高级更新(UPDATE)和删除(DELETE)技巧,包括批量更新、基于条件的删除以及使用子查询和事务处理复杂场景等,帮助读者提升数据处理能力。掌握这些技巧能够有效提高数据库性能并确保数据一致性。
99 0
下一篇
DataWorks