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

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

一、前言


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


二、所要使用表


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


八、结语


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

相关文章
|
9天前
|
Oracle 关系型数据库 Java
实时计算 Flink版操作报错之读取Oracle数据库时遇到找不到驱动,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
实时计算 Flink版操作报错之读取Oracle数据库时遇到找不到驱动,是什么原因
|
9天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之数据库执行的是UPDATE操作,那么Flink监听到的类型是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
14天前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错合集之采集oracle的时候报ORA-65040:不允许从可插入数据库内部执行该操作如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
39 3
|
17天前
|
SQL Oracle 安全
Oracle11g更改数据库名(详细教程)
Oracle11g更改数据库名(详细教程)
23 1
|
2天前
|
SQL 关系型数据库 MySQL
Python 操作 MySQL 数据库
Python 操作 MySQL 数据库
|
3天前
|
SQL 存储 关系型数据库
sql 数据库教程
SQL数据库教程可以从以下几个方面进行介绍: 一、SQL概述与基本概念 SQL,全称Structured Query Language,即结构化查询语言,是用于管理关系型数据库的编程语言。
18 0
|
3天前
|
SQL Java 数据库连接
MyBatis 操作数据库
MyBatis 操作数据库
|
3天前
|
XML Java 数据库连接
利用MyBatis框架操作数据库2
利用MyBatis框架操作数据库
13 2
|
3天前
|
Java 数据库连接 测试技术
利用MyBatis框架操作数据库1
利用MyBatis框架操作数据库
13 1
|
8天前
|
存储 自然语言处理 算法
向量数据库Chroma极简教程
本文重点围绕向量数据库Chroma的使用和实战,主要包括以下内容: * Chroma设计理念 * Chroma常见概念(数据集,文档,存储,查询,条件过滤) * Chroma快速上手 * Chroma支持的Embeddings算法 * 实战:在Langchain中使用Chroma对中国古典四大名著进行相似性查询
57 1
http://www.vxiaotou.com