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

news/2023/11/28 23:25:47

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


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


 ✨一、实验目的和要求

掌握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 SdeptFROM  StudentWHERE  Student.Sno=SC.Sno);

3.删除数据

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

DELETE
FROM  Student
WHERE  Sno='200215128' ;

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

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

DELETE
FROM  SC
WHERE  'CS'=
(SELECT  SdeptFROM  StudentWHERE  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.ppmy.cn/news/87903.html

相关文章

实时时钟 RTC

概述 实时时钟(RTC) 模块可长时间维持精确计时,为系统提供实时时钟和日历。该模块功耗极低,最大程度延长电池寿命。 RTC的主要特点: ⚫ BCD 时间 格式 ,完整万年历 ⚫ 支持数字调校, 最高 精度可达 0. 06 ppm ⚫ 可输出…

如何在华为OD机试中获得满分?Java实现【最差产品奖】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

ESP32 :项目的创建及项目架构解析

一、项目的创建 方式一:基于IDF示例创建 在ESP-IDF中有example示例库,以其中的一个示例为模板创建项目。 1、打开示例库 查看 - 命令面板(也可以按住CtrlShiftP 或 F1) 输入 show examples projects 2…

基于 Docker 搭建 ownCloud 个人云盘

本文源码:https://github.com/chen2438/chenhaotian.top/tree/main/source/_posts/linux-app/owncloud.md 在我的博客上查看:https://chenhaotian.top/2022/09/07/linux-app/owncloud/ 基于 Docker 搭建 ownCloud 个人云盘 官方文档 机翻气息贯穿全文…

C语言函数大全-- x 开头的函数(5)

C语言函数大全 本篇介绍C语言函数大全-- x 开头的函数 1. xdrmem_create 1.1 函数说明 函数声明函数功能void xdrmem_create(XDR *xdrs, caddr_t addr, u_int size, enum xdr_op op););用于创建一个内存 XDR 流,以便进行编码或解码操作 参数: xdrs &…

一起看 I/O | 移动设备、Web、AI 和 Google Cloud 更新一览

作者 / Developer X 副总裁兼总经理、开发者关系主管 Jeanine Banks 感谢您再次与我们共享 Google I/O 大会的精彩!我们正在持续深度投入资源来提升 AI、移动设备、Web 和 Google Cloud,致力于让您的开发工作更加轻松。现在,您看到了许多我们…

int类型,String类型,double类型比较大小

package com.test.Test08;public class Test01 {public static void main(String[] args) {/*//int类型比较大小int a 10;int b 20;System.out.println(a-b); //0 >0 <0//res:-10*///String类型比较大小/*String a "A";String b "B";System.ou…

2023开放原子全球开源峰会分论坛即将来袭,Pick你最关注的峰会话题!

2023开放原子全球开源峰会即将开启 二十余场分论坛主题重磅首发 聚焦全球开源发展最新动向 前沿技术、行业实践、开源项目与治理等 多场知识盛宴等您来享 为更好地了解大家的参与意向 分论坛投票今天正式启动&#xff01; 投票时间&#xff1a;5月19-26日 长按识别二维码 …

医药行业除钾钠,物料液体钾钠分离,特殊溶剂钾的提取

Tulsimer T-42是特级强酸型离子交换树脂&#xff0c;氢 H/钠 Na阳离子交换树脂&#xff0c; 是一款有较的交换容量 ,并同时拥有物理及化学稳定品质。可应用于汽电共生发电厂冷凝水处理及超纯水系统中的混床, 去除水中的阳离子。 Tulsimer T-42其无裂纹特性和均匀的粒度&#x…

Kafka 中 SASL ACL SSL 分别代表什么意思

Kafka 中 SASL ACL SSL 分别代表什么意思 auth: huangyichun date: 2023-5-11 序 看各类帖子都没能指出这些到底是什么意思&#xff0c;他们是冲突的&#xff0c;还是互相作用的&#xff0c;还是隔离的&#xff1f;本文讲解 kafka 中 SASL、ACL、SSL 他们分别的作用以及含义。…

vue组件通信方式

1&#xff0c; props / $emit 父组件通过props向子组件传递数据&#xff0c;子组件通过$emit和父组件通信 2&#xff0c;eventBus事件总线&#xff08;$emit / $on&#xff09;eventBus事件总线适用于父子组件、非父子组件等之间的通信 3&#xff0c;&#xff08;provide / …

150套开发板免费送!还有5G手机拿?米尔RZ/G2L开发板创意秀

人间最美五月天 不负韶华不负卿 米尔又来送板子了 不是3套&#xff0c;也不是4套 150套米尔RZ/G2L开发板 送&#xff01;免费&#xff01;板卡不回收&#xff01; 这是什么样的有奖活动&#xff1f; 米尔RZ/G2L开发板创意秀 为感谢广大客户一直以来的支持&#xff0c;推动…

热门API 大全推荐(含OCR 识别/运营商二要素等)

通用文字识别OCR&#xff1a;多场景、多语种、高精度的整图文字检测和识别服务&#xff0c;多项指标行业领先&#xff0c;可识别中、英、日、韩、法、德多种语言。二维码识别OCR&#xff1a;对图片中的二维码、条形码进行检测和识别&#xff0c;返回存储的文字内容。车牌识别OC…

vue vant 登录增加图片验证码显示

<!-- 登录表单 --><van-form submit"onLogin" :show-error"false":show-error-message"false"ref"login-form"failed"onFailed"> <van-fieldv-model"user.account"icon-prefix"toutiao"…

关闭linux kernel内核的启动log在控制台的输出

要关闭Linux内核的启动日志&#xff0c;你可以通过以下方法之一进行操作&#xff1a; 1. 通过引导加载器配置&#xff1a; 打开引导加载器的配置文件&#xff0c;如GRUB的配置文件 /boot/grub/grub.cfg。 在内核的启动行&#xff08;以 “linux” 或 “kernel” 开头&#xf…

【数据结构】堆堆堆堆堆!

目录 前言 树 树的概念 树的相关概念​编辑 树的表示 二叉树的概念 特殊的二叉树 ​ 二叉树的存储结构 堆 堆的建立(本篇以小堆为例&#xff0c;大堆实现方法一样&#xff09; 堆的结构定义 堆的初始化 堆的插入 堆的基础算法——向上调整算法 插入注意事项 堆的判…

pytest-编写插件

pytest 0 、文档1、钩子函数分类1.4 测试运行钩子 2、本地编写插件&#xff1a;conftest.py3、外部插件&#xff1a;setuptools4、实战5、优化 0 、文档 官方文档 中文文档 1、钩子函数分类 pytest中的钩子函数按功能一共分为6类&#xff1a;引导钩子&#xff0c;初始化钩子…

【day 06】vue的组件

组件 组件就是把一个网页分割成独立的小的模块&#xff0c;然后通过把模块进行组合&#xff0c;构建成一个大型的应用 单文件组件 只有一个组件 html css js 都在这个文件内 非单文件组件 可有多个组件 全局注册 !! 得先注册子组件 再生成 vm实例对象 创建子组件 const …

springboot、Mybatis-plus工程多数据源字段映射不生效

1、多数据源配置文件 2、配置项 多个数据源配置项中分别添加配置 bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true); //配置驼峰命名 或者 参考地址 Configuration MapperScan(basePackages "it.aspirin.riderserver.mapper.mysql", sqlS…

自动生成测试用例_接口测试用例自动生成工具

前言 写用例之前&#xff0c;我们应该熟悉API的详细信息。建议使用抓包工具Charles或AnyProxy进行抓包。 har2case 我们先来了解一下另一个项目har2case 他的工作原理就是将当前主流的抓包工具和浏览器都支持将抓取得到的数据包导出为标准通用的 HAR 格式&#xff08;HTTP A…
最新文章