​数据库原理及应用上机(实验五 SQL的数据更新)

news2024/11/17 4:42:05

作者:命运之光 
专栏:数据库原理及应用上机实验


🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善🍓🍓 


 ✨一、实验目的和要求

掌握SQL数据插入、修改和删除语句的一般格式和使用方法。

✨二、实验内容及步骤

1.插入数据

例1  将学生陈冬的信息(学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。

INSERT
INTO Student(Sno,Sname,Ssex,Sdept,Sage)
VALUES('200215128','陈冬','男','IS',18);

INSERT
INTO Student(Sno,Sname,Ssex,Sage,Sdept)
VALUES('200215129','陈冬','男',18,'IS');

INSERT
INTO Student
VALUES('200215130','陈冬','男',18,'IS');

例2 插入一条选课记录(’200215128’,’1’)

INSERT
INTO SC(Sno,Cno)
VALUES('200215128','1');

例3 设数据库中已有一个关系表History_Student(需先创建表),其关系模式与Student完全一样,试将关系Student中的所有元组插入到关系History_Student中去,其SQL命令为:

INSERT
INTO  History_Student
SELECT  *
FROM  Student;

例4  创建系平均年龄表,并插入数据,Dept_age表插入SQL为:

INSERT
INTO  Dept_age(Sdept,Avg_age)
SELECT  Sdept,AVG(Sage)
FROM  Student
GROUP BY Sdept;

2.修改数据

例5 将学号为“200215121”的学生年龄改为22岁。即要修改满足条件的一个元组的属性值。

UPDATE  Student
SET Sage=22
WHERE  Sno='200215121';

例6 将所有学生的年龄增加1岁。即要修改多个元组的值。

UPDATE  Student
SET  Sage=Sage+1;

例7  将计算机科学系所有学生的成绩置零。

由于学生所在系的信息在Student表中,而学习成绩在SC表中,因此,可以将SELECT子查询作为WHERE子句的条件表达式。故该更新要求的SQL命令为:

UPDATE SC
SET  Grade=0
WHERE  'CS'=
(SELECT Sdept
 FROM  Student
 WHERE  Student.Sno=SC.Sno);

3.删除数据

例8  删除学号为200215128的学生记录。

DELETE
FROM  Student
WHERE  Sno='200215128' ;

(有外键约束时先删除存在约束的数据)

例9  删除计算机科学系所有学生的选课记录。

DELETE
FROM  SC
WHERE  'CS'=
(SELECT  Sdept
 FROM  Student
 WHERE  Student.Sno=SC.Sno);

例10  删除所有学生的选课记录。

DELETE
FROM  SC;

这条DELETE语句将删除SC的所有元组,使SC成为空表。

✨三.实验结果

1.插入数据

例1  将学生陈冬的信息(学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。

 例2 插入一条选课记录(’200215128’,’1’)

 例3 设数据库中已有一个关系表History_Student(需先创建表),其关系模式与Student完全一样,试将关系Student中的所有元组插入到关系History_Student中去。

 例4  创建系平均年龄表,并插入数据,Dept_age表。

 2.修改数据

例5 将学号为“200215121”的学生年龄改为22岁。

 例6 将所有学生的年龄增加1岁。

 例7  将计算机科学系所有学生的成绩置零。

 3.删除数据

例8  删除学号为200215128的学生记录。

 例9  删除计算机科学系所有学生的选课记录。

 例10  删除所有学生的选课记录。

✨四.附加练习

1.用一条SQL语句,向课程表Course中插入以下课程:

(1)离散数学,无先修课,学分4分;

(2)C++语言,先修课为数据结构,学分2分;

(3)JAVA语言,无先修课,学分2分;

INSERT INTO Course (CourseName, PreCourse, Credit)
VALUES
    ('离散数学', NULL, 4),
    ('C++语言', '数据结构', 2),
    ('JAVA语言', NULL, 2);

以上 SQL 语句使用 `INSERT INTO` 语句将三个新的课程记录插入到课程表 Course 中。其中,第一个课程记录的先修课为 NULL,表示无先修课;第二个课程记录的先修课为数据结构;第三个课程记录的先修课同样为 NULL。三个课程的学分分别为 4 分、2 分和 2 分。

2.用一条SQL语句,修改课程名‘JAVA语言’为‘JAVA语言上机’,学分为3分。

UPDATE Course
SET CourseName = 'JAVA语言上机', Credit = 3
WHERE CourseName = 'JAVA语言';

以上 SQL 语句使用 `UPDATE` 语句来更新课程表 Course 中的记录。`SET` 子句用于设置需要修改的列及其对应的值。在本例中,需要将 CourseName 列修改为“JAVA语言上机”,Credit 列修改为 3。`WHERE` 子句用于指定需要修改的记录。在本例中,需要修改的记录是 CourseName 为“JAVA语言”的记录。

为课程表Course增加一列:学时Ctime,离散数学为48学时;

ALTER TABLE Course ADD Ctime INT;

以上 SQL 语句使用 `ALTER TABLE` 语句向课程表 Course 中添加一列 Ctime。该语句的 `ADD` 子句用于添加新列,`Ctime INT` 用于指定新列的名称和数据类型。执行该语句后,课程表 Course 将会增加一列名为 Ctime 的整型列。

接下来,可以使用如下的 SQL 语句将离散数学的 Ctime 设置为 48:

UPDATE Course SET Ctime = 48 WHERE CourseName = '离散数学';

以上 SQL 语句使用 `UPDATE` 语句来更新课程表 Course 中的记录。`SET` 子句用于设置需要修改的列及其对应的值。在本例中,需要将 Ctime 列修改为 48。`WHERE` 子句用于指定需要修改的记录。在本例中,需要修改的记录是 CourseName 为“离散数学”的记录。

4.用一条SQL语句,根据课程编号,删除‘离散数学,C++语言,JAVA语言上机’三门课程。

DELETE FROM Course WHERE CourseID IN (1, 2, 4);

以上 SQL 语句使用 `DELETE` 语句来删除课程表 Course 中的记录。`FROM` 子句用于指定需要删除的表。`WHERE` 子句用于指定需要删除的记录,`IN` 关键字用于指定多个需要删除的 CourseID 值。在本例中,需要删除 CourseID 为 1、2 和 4 的三条记录。

5.将计算机系的学生的‘数据库’这门课的考试成绩加1分。

UPDATE Score SET Score = Score + 1
WHERE CourseID = (SELECT CourseID FROM Course WHERE CourseName = '数据库')
AND StudentID IN (SELECT StudentID FROM Student WHERE DeptID = (SELECT DeptID FROM Department WHERE DeptName = '计算机系'));

以上 SQL 语句使用 `UPDATE` 语句来更新成绩表 Score 中的记录。`SET` 子句用于设置需要修改的列及其对应的值。在本例中,需要将 Score 列的值加 1。`WHERE` 子句用于指定需要修改的记录,其中 `CourseID` 子句用于指定需要修改的课程为“数据库”,`StudentID` 子句用于指定需要修改的学生所属系别为“计算机系”。由于需要查询到 Course 表和 Student 表中的信息,因此使用了子查询来获取相应的 CourseID 和 DeptID。

✨五.实验总结

本次实验主要学习了 SQL 数据更新语句的使用方法,包括插入数据、修改数据和删除数据等操作。通过实验的学习,我们深入了解了 SQL 数据更新语句的语法和使用方法,并学会了如何使用这些语句对数据库中的数据进行增删改操作。

在实验过程中,我们先学习了 SQL 的数据插入语句,即 `INSERT INTO` 语句。该语句可以将一条或多条数据记录插入到指定的数据表中,从而实现数据的添加功能。接着,我们学习了 SQL 的数据修改语句,即 `UPDATE` 语句。该语句可以修改数据表中符合指定条件的一条或多条记录,从而实现数据的修改功能。     最后,我们学习了 SQL 的数据删除语句,即 `DELETE` 语句。该语句可以删除数据表中符合指定条件的一条或多条记录,从而实现数据的删除功能。

在实验过程中,我们通过编写 SQL 查询语句和观察执行结果来深入理解了 SQL 数据更新语句的语法和使用方法。同时,我们还注意到了 SQL 数据更新语句的使用要注意一些细节问题,如数据表字段名和数据类型的匹配问题、数据更新操作对数据表的影响等等。

通过本次实验的学习,我们不仅掌握了 SQL 数据更新语句的使用方法,还学会了如何根据具体需求选择不同的更新语句,并在实践操作中深化了对 SQL 数据库操作的理解和掌握。这对今后的工作和学习都有很大的帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多大一口气能将汽车吹上天,你算出来了吗?

多大一口气能将汽车吹上天,你算出来了吗?起来了解其中的原理,手把手教你如何计算汽车起飞所需的风速! 空气同时通过机翼上表面和下表面时,会在机翼上下方形成不同流速,空气通过机翼上表面时流速大,压强较小;通过下表面…

设计模式之【中介者模式】,多对多关系降级为一对多关系的利器

文章目录 一、什么是中介者模式1、中介者模式的优势2、中介者模式的缺点3、中介者模式的应用场景4、中介者模式的四大角色5、观察者模式和中介模式的区别 二、实例1、中介者模式的一般写法2、租房中介案例3、智能家具案例 三、源码中的中介者模式1、Timer 一、什么是中介者模式…

Spring MVC 中的视图解析器是什么?如何配置它

当我们使用 Spring MVC 框架进行 Web 开发时,视图解析器(View Resolver)是一个非常重要的组件,它负责将控制器(Controller)所产生的逻辑视图名称(Logical View Name)转换成实际的视图…

Go语言环境搭建(内附网P下载地址)

一、Golang语言的官网 首先我们登录Golang的官方网站:https://golang.org/ 因为Google和中国的关系,直接登录Golang的官网,需要翻墙。 当然你也可以登录Golang的国内网站:https://golang.google.cn/ 二、下载 在Mac、Windows和L…

2023贵工程团体程序设计赛--赛后总结

本次比赛共27支队伍参加,总计135人,其中一支队伍为出题组(不计入最后排名)。实际参赛130人,5人缺考(1人未加入题集)。 1.人员分布 信息工程学院:22计科2支队伍,22软件6…

Python|Pyppeteer快速定位select下拉框(10)

前言 本文是该专栏的第10篇,结合优质项目案例持续分享Pyppeteer的干货知识,记得关注。 一般情况下,选中某个select下拉框,会出现一堆可选信息。如下图中的Country列表,点击列表会出现多个国家选择,如下图所示。 比如说,现在需要从这个Country列表中,快速选中某个国家…

2023新版Spring6全新讲解-SpringFramework介绍

SpringFramework介绍 一、官网地址阅读 https://spring.io/ 二、Spring的发展历史 三、Spring的概述 一个Java应用层程序,是由许多个类组成的,这些类之间必然存在依赖关系,当项目越来越大,依赖关系越来越复杂,需要一…

Jmeter连接不同类型数据库语法

Jmeter连接不同类型数据库语法 添加:配置原件->JDBC Connection Configuration variable name for created pool:自定义一个线程池变量名database Connection Configuration database URL: 填写数据库ip、端口、dbname等,但是不同数据库…

【UE4】从零开始制作战斗机(下:喷射尾焰随推进速度变化)

上一篇: 【UE4】从零开始制作战斗机(中:飞机操控逻辑)_Zhichao_97的博客-CSDN博客 效果 步骤 1. 新建一个Niagara发射器 选择新发射器 选择空模板 命名为“ThrusterEmitter” 2. 打开“ThrusterEmitter”,选中“发射…

真题详解(快速排序)-软件设计(八十一)

原创 真题详解(语法分析输入记号流)-软件设计(八十)https://blog.csdn.net/ke1ying/article/details/130791934 COCOMOII基于____进行估算? 答案:源代码行数 2、0~7有8个索引,0~4是5个直接索引,磁盘块数据大小1kb字节…

Spring Cloud(Kilburn 2022.0.2版本)系列教程(二) 服务消费者(RestTemplate+Loadbalancer)

Spring Cloud(Kilburn 2022.0.2版本)系列教程(二) 服务消费者(RestTemplate+Loadbalancer) 一、服务消费 可以参考上节eurekaClientConsumer。 在启动类中,我们已经注入了一个restTemplate了,并且在上面增加了@LoadBalanced注解,这个是导入的org.springframework.cloud.cl…

001. 为啥用IDEA反编译没有擦除泛型?

你好,我是YourBatman:一个俗人,贪财好色。 📚前言 Java泛型是进阶高级开发必备技能之一,了解实现泛型的基本原理,有助于写出更优质的代码。 众所周知,Java是伪泛型,是通过类型擦除…

Redis哨兵集群搭建及其原理

Redis哨兵集群搭建及其原理 1.Redis哨兵1.1.哨兵原理1.1.1.集群结构和作用1.1.2.集群监控原理1.1.3.集群故障恢复原理1.1.4.小结 2.搭建哨兵集群2.1.集群结构2.2.准备实例和配置2.3.启动2.4.测试 3.RedisTemplate3.1.引入依赖3.2.配置Redis地址3.3.配置读写分离 1.Redis哨兵 R…

Centos8安装ffmpeg,使用mediamtx搭建RTSP流媒体服务器

文章目录 1、Centos安装ffmpeg2、使用mediamtx搭建媒体服务器 1、Centos安装ffmpeg 1、先安装epel-release yum install epel-release2、安装nux存储库 rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/…

[NSSROUND#12]杂项记录

文章目录 [NSSRound#12 Basic]Bulbasaur[NSSRound#12 Basic]Secrets in Shadow[NSSRound#12 Basic]奇怪的tex文件[NSSRound#12 Basic]坏东西[NSSRound#12 Basic]ordinary forensics[NSSRound#12 Basic]Noisy Cube[NSSRound#12 Basic]ability[NSSRound#12 Basic]strange python …

数据结构课程设计——集合的交、并和差运算

集合的交、并和差运算 数据结构课程设计任务书 学生姓名: 专业班级: 软件工程 指导教师: 工作单位: 题 目: 集合的并、交和差运算 基础要求: 掌握数据结构与…

最全iOS 上架指南

一、基本需求信息。 1、苹果开发人员账户(公司已经可以无需申请,需要开启开发者功能,每年99美元) 2、开发好应用程序 二、证书 上架版本需要使用正式证书。 1、创建Apple Developer证书 2、上传证书Sign In - Apple 3、点击开发者…

pyqt5:py处理C语言格式数组和有符号数的转换(备忘录)

文章目录 1.问题:把下面的数组所表示的正弦波用曲线描绘出来。1.1 将C语言数组直接替换为py数组1.2 使用numpy读入数组1.3完整代码 2.从正弦波数据生成C数组2.1 正弦波数据2.2 负数转成16位带符号整型公式2.3 负数转成16位带符号整型 完整代码 3. 生成正弦波数据的代…

ASEMI代理英飞凌IPA65R650CE功率MOS管中文资料

编辑-Z IPA65R650CE是一款高性能功率晶体管,旨在满足现代电子应用日益增长的需求。这种先进的半导体器件提供了高效、低功耗和优异热性能的独特组合,使其成为广泛应用的理想选择,包括电源、电机驱动和可再生能源系统。 IPA65R650CE的主要功能…

失业五个月,终于有offer了!但这家公司的风评惨不忍睹,要接吗?

往年,程序员们找工作可以说是不怎么费力的,不少求职者还会比对几家offer,看薪酬、看加不加班、看通勤时间等等等等,最后选择自己最满意的那一家过去。 但是今年,情况确实完全不一样,用网友的话形容就是“往…