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

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

一、前言


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


二、所要使用表


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


八、结语


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

相关文章
|
1天前
|
Java 关系型数据库 MySQL
JSP 教程 之 JSP 连接数据库 1
**JSP连接MySQL数据库教程**:确保有JDBC驱动,如MySQL 5或8的connector。将jar包放入Tomcat的lib目录。对于MySQL 8,驱动类改为`com.mysql.cj.jdbc.Driver`,URL示例:`jdbc:mysql://localhost:3306/baidu?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8`。创建数据库`baidu`和表`websites`,包含站点信息,然后插入测试数据。
10 4
|
2天前
|
XML Java 数据库连接
【MyBatis】MyBatis操作数据库(一)
【MyBatis】MyBatis操作数据库(一)
9 1
|
4天前
|
监控 数据库 Docker
Zabbix监控神通数据库教程
**摘要:** 本文介绍了如何使用Docker安装和配置神舟通用数据库,并利用Zabbix进行监控。首先,通过Docker安装数据库镜像,启动容器并映射端口。接着,使用默认凭证连接数据库并验证安装。然后,将数据库的Python模块和库文件复制到主机,并安装Python3.5及相应模块,创建外部检查脚本以实现Zabbix的监控功能。示例展示了查询数据库版本的监控指标配置。最后,提到了监控结果的界面展示,并邀请读者探索更多Zabbix监控技巧。
10 0
Zabbix监控神通数据库教程
|
13天前
|
SQL 关系型数据库 MySQL
Python 操作 MySQL 数据库
Python 操作 MySQL 数据库
|
10天前
|
SQL 安全 API
Python基础教程(第3版)中文版 第13章 数据库支持(笔记)
Python基础教程(第3版)中文版 第13章 数据库支持(笔记)
|
18天前
|
SQL 存储 关系型数据库
MySQL数据库案例实战教程:数据类型、语法与高级查询详解
MySQL数据库案例实战教程:数据类型、语法与高级查询详解
35 3
|
17天前
|
SQL 关系型数据库 Java
有大批量的数据导入到数据库,规则是数据库有相应主键的就update没有就insert怎么做效率快
有大批量的数据导入到数据库,规则是数据库有相应主键的就update没有就insert怎么做效率快
56 1
|
17天前
|
SQL 关系型数据库 数据建模
Dify数据库结构导出到PowerDesigner
Dify是开源大语言模型应用开发平台,助力快速构建生成式AI应用。PowerDesigner是SAP的企业级建模工具,用于数据建模、业务流程建模和企业架构规划。通过PostgreSQL的`pg_dump`导出表结构到SQL文件,然后在PowerDesigner中导入生成物理数据模型,从而实现Dify数据库结构到PowerDesigner的迁移。
33 1
|
18天前
|
Java 数据库连接 数据库
Spring日志完结篇,MyBatis操作数据库(入门)
Spring日志完结篇,MyBatis操作数据库(入门)
|
18天前
|
存储 SQL 数据可视化
【Databend】数据库和表操作
【Databend】数据库和表操作
18 1

热门文章

最新文章