数据库系统实验5 SQL语言-数据更新操作

实验5——SQL语言:数据更新操作 中山大学计算机学院《数据库系统原理实验》实验参考。 阅读详情

SQL语言-数据更新操作

1.在教学管理数据库jxgl中,使用MySQL Workbench在表中导入表5-1和表5-2的数据

将所给数据导入student表:

insert into student
values ('2005010','赵春江',18,'男','Cs'),
       ('2005011','赵丽萍',19,'女','Ch'),
       ('2005012','陈景欢',20,'男','Is'),
       ('2005013','陈婷婷',16,'女','Ph'),
       ('2005014','李军',16,'女','Ph');

导入后查看结果:

将所给数据导入sc表:

insert into sc 
values ('2005010','1',87),
	   ('2005010','2',NULL),
       ('2005010','3',80),
       ('2005010','4',87),
       ('2005010','6',85),
       ('2005011','1',52),
       ('2005011','2',47),
       ('2005011','3',53),
       ('2005011','5',45),
       ('2005012','1',84),
       ('2005012','3',NULL),
       ('2005012','4',67),
       ('2005012','5',81);

导入数据后查看结果:

2.使用SQL语句进行以下更新操作
  1. 给IS系的学生开设7号课程,建立相应的选课记录,成绩为空

    insert into sc  #插入数据
    select sno,'7',null    #令sno为Is系的学生的学号,cno为'7',成绩为空
    from student
    where sdept='Is';
    

    查看结果:


从运行结果可以看出Is系的两门学生的选课记录中增加了7号课程且课程成绩为NULL。

  1. 在表student中检索每门课均不及格的学生学号、姓名、年龄、性别及所在系信息,并把检索到的信息存入信标ts中。

    首先创建表ts,由于其属性和student相同,故直接用create table name1 like name2的方式建表,然后再用insert语句筛选出数据插入其中

    create table ts like student;  #通过create table  name  like name2 可创建属性相同的表
    insert into ts
    select *
    from student natural join sc  #用student和sc的自然连接表示
    group by sno #用学号分组
    having max(grade)<60;  #max(grade)<60说明所有课均不及格
    

    执行结果:

  1. 将学号为2005001的学生姓名修改为"李华",年龄增加1岁

    update student set sname="李华" ,sage=sage+1 #将年龄加1,名字改为'李华'
    where sno='2005001';
    

    运行结果:

    起初2005001对应的是‘钱横’且age=18,故可知修改成功。

  2. 把选修了"数据库系统"课程而成绩不及格的学生成绩全部改为空值

    update sc set grade=NULL 
    where cno=(select distinct cno from course where cname='数据库系统') and grade<60; 
    

    运行结果:

    之前2005011对应的数据库成绩为52,现在改为null,故可知正确。

  3. 学生王林在3号课程考试作弊,将该课成绩改为空值

    由于原本的数据库中王林没用选修3号课程,故现增加一组数据:

    insert into sc values('2005002','3',100);
    

    然后再进行操作

    update sc set grade=null
    where sno=(select distinct sno from student where sname='王林') and cno='3';
    

    运行结果:

  1. 把成绩低于总平均成绩的女同学成绩提高5%

    SET SQL_SAFE_UPDATES = 0; #因为要修改非主键元素,故必须关闭safe_update
    with avg_grade(the_avg_grade) as
    (select avg(grade)
     from sc)
    update sc set grade=grade*1.05
    where sno in (select sno from student where ssex='女') and grade<(select distinct * from avg_grade);
    

    运行结果:

    从之前的结果中可以看出赵丽萍的成绩为47-53-45,故完成了更新。共两个女性,而另一位女性的成绩是较高的,高于平均成绩故不需要更新,因此更新仅对赵丽萍操作。

  2. 在基本表sc中修改课程号为"2"号课程的成绩,成绩小于等于80分的降低2%,成绩大于80分时降低1%

    update sc set grade=grade*(1-0.02)
    where grade<=80 and cno='2';
    update sc set grade=grade*(1-0.01)
    where grade>80 and cno='2';
    #注意这里的顺序不可以反,否则可能导致重复更新
    

    另一种写法:

    update sc
    set grade=case
    when grade<=80 then grade*(1-0.02)
    else grade*(1-0.01)
    end
    where cno='2';
    #用case when then else语句
    

    结果:

与之前对比可知减分操作完成。

  1. 把"钱横"的选课记录全部删去

    delete from sc
    where sno=(select sno from student where sname='钱横');
    

    由于之前我们已经将钱横改为李华,故在此处我将删除李华的选课记录。

    delete from sc
    where sno=(select sno from student where sname='李华');
    

    运行结果:

故可知删除记录成功。

  1. 能删除2005001的学生记录吗?一定要删除应该如何操作?给出操作命令

    可以根据学号删除学生记录。

    删除该学生的记录意味着删除该学生对应的student和sc记录,故需要删除两个表中的记录。

    delete from sc
    where sc.sno in(
        select sno 
        from student 
        where sno = '2005001');
    delete from student where sno = '2005001'
    

    删除后查询可知均为空:

在这里插入图片描述

在这里插入图片描述

数据库系统概论(第5版) 个人整理详细笔记——基础篇 本篇介绍数据库系统的基本概念和基础知识。 目录 第1章:绪论 1.1、数据库系统概述 1.2、数据模型 1.3、数据库系统的结构 1.4、数据库系统组成 1.5、小结 第2章:关系数据库 2.1、关系数据库及形式化定义 2.2、关系操作 2.3、关系的完整性 2.4、关系代数 *2.5、关系演算 2.6、小结 第3章:关系数据库标准语言SQL 3.1、SQL概述... 阅读详情

相关推荐

SQL语言——更新操作命令

要使用包括如下三个表的“教学管理”数据库JXGL: (1)学生表Student,由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno。 (2)课程表Course,由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个...

SAMSARA的博客 1万+

期末复习之sql语句

1.将计算机学院全体学生的成绩置零 update sc set grade=0 where sno in( select sno from student where sdept="计算机学院" ) 2.查询学生及其选修课的情况 select student.*,cno,grade from student,sc where student.sno=sc.sno(+) 3.查...

sunshine博客 1011

sql 数据库上机实验二

这是一个关于数据库系统原理 sql 简单的数据库操作语言,主要是一些关于创建表,删除表,创建以及删除约束、自然连接,字符匹配,数据更新与删除等,主要是用于学生们数据库上机实验的常用题目,希望可以帮到你哦,童鞋们

数据库——数据更新

数据库更新操作有三种:在表中添加若干行数据、修改表中的数据和删除表中的若干行数据。 SQL中有三类相应的语句,分别是插入数据(INSERT)、修改数据(UPDATE)、删除数据(DELETE) 插入数据 INSERT···VALUES 插入单行或多行元组数据 例:向数据库mysql_test的表customers中插入这样一行完整数据:(901,张三,F,北京市,朝阳区)。 INSERT...

weixin_44621107的博客 3298

AHB总线协议

1. 简介         AHB总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能、高时钟频率的系统结构,典型的应用如ARM核与系统内

ivy_reny的专栏 8万+

【保研经验】北科自动化到北大工学院

作者:办公室某学长 谢邀。。。作为拖延症晚期患者,希望能在我科开学前写完。 先简单介绍一下我的保研过程,申请了清华叉院&amp;北大叉院大数据&amp;北大信科计算机夏令营,三者都没入营;申请了自所夏令营(自所来宣讲时未交简历,这是重大错误),给了第二批补录但没去;最终九推去了北大工学院。我的这次保研最终成功的经历可以说有一定运气成分,不具有普适性,但在前期准备过程中还是有经验可以分享的。 ...

ruanjianbu的博客 1796

数据更新:插入数据(插入单个元组),修改数据:修改表中已有的元组(记录),删除数据(删除元组)

数据更新 数据更新操作的目的是修改表中的数据。 有三种操作: 向表中添加若干行数据( INSERT ) 修改表中的数据( UPDATE ) 删除表中的若干行数据( DELETE )。 DBMS 在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则。 举例说明: 如果表中已经建立了索引,对索引关键字的更新,...

今天会营业的博客 8241

GAMIT/GLOBK 10.71在Linux环境下的GNSS数据处理全流程解析(附实战案例)

本文详细解析了在Linux环境下部署和运行GAMIT/GLOBK 10.71进行GNSS数据处理的完整流程。从系统环境配置、软件编译安装、关键表格文件更新,到运行自带示例和实战案例,提供了清晰的步骤与避坑指南,帮助用户掌握这一高精度GNSS数据处理工具的核心使用方法。

kmeans3miner的博客 309

用sql插入、删除、更新数据,或者复制表

用sql插入、删除、更新数据,或者复制表

Webber_leaf的博客 555

InSAR图像配准:从像素级到亚像素级的精度提升策略

本文深入探讨了InSAR图像配准技术,从像素级到亚像素级的精度提升策略。通过分析最大频谱法和相干系数法的适用场景,结合频域补零插值和四叉树分块等高级技术,实现1/8像素级的高精度配准。文章还提供了实用的精度验证方法和常见问题排查指南,为InSAR数据处理提供全面解决方案。

nginx7reverse的博客 836

coreldraw sp2精简版 x4_CorelDRAW X4下载-CorelDRAW X4 SP2 精简版_Win10镜像官网

CorelDRAW X4 SP2是一个专业图形设计软件,专用于矢量图形编辑与排版,借助其丰富的内容和专业图形设计、照片编辑和网站设计软件,您将能够随心所欲地表达自己的风格与创意,轻松创作徽标标志、广告标牌、车身贴和传单、模型绘制、插图描画、排版及分色输出等。CorelDRAW X4 SP2软件特色CorelDraw X4 相比两年前的 CorelDraw X3 加入了大量新特性,总计有50项以上,...

weixin_30346025的博客 8897

MySQL——数据更新操作(数据的录入、插入、修改更新及删除)

实验环境 1、 操作系统:window10 2、 MySQL 5.7 实验内容与完成情况: 在教学管理数据库jxgl中,使用MySQL Workbench在表中录入新数据: insert into student values ('2005010','赵清江',18,'男','Cs'), ('2005011','张丽萍',19,'女','Ch'), ('2005012','陈景欢',20,'男','Is'), ('2005013','陈婷婷',16,'女','Ph'), ('

ShawnYe1022的博客 5234

华为OD机试新系统真题【迷宫相遇】

华为OD机试 新系统真题【迷宫相遇】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【迷宫相遇】多语言题解。

qq_45776114的博客 767

【数据库系统设计】SQL语言实验

SQL语言一、实验目的和要求二、实验环境(实验设备)三、实验原理及内容创建 SPJ 数据库及 S、P、J、SPJ 表用SQL语句完成增删改操作以及指定查询向四个基表中插入数据!!!!!!!!!衔接!!!!!!!!!找出所有供应商的姓名和所在城市找出所有零件的名称、颜色、重量找出使用供应商S1所供应零件的工程号码找出工程项目J2使用的各种零件的名称及其数量找出上海厂商供应的所有零件号码找出使用上海产...

萌宅鹿的技术小屋 1万+

OpenClaw对接本地大模型:Llama3/Qwen/ChatGLM全适配,完全私有化部署

OpenClaw对接本地大模型,是企业级AI智能体落地的必经之路——它不仅解决了数据隐私和合规问题,还能大幅降低成本、提升响应速度、实现定制化。这篇文章我给大家完整拆解了两套部署方案:Ollama(新手首选,5分钟搞定)和vLLM(生产环境首选,高性能),覆盖了Llama3/Qwen/ChatGLM三大主流模型,还有真实的落地案例、高级优化、踩坑避坑指南,看完你就能零代码完成完全私有化的部署。从零开发自定义工具,给OpenClaw添加专属业务能力;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 808

C语言试题三之计算并输出 s=1+(1+2^(0.5))+(1+2^(0.5)+3^(0.5))+…+(1+2^(0.5)+3^(0.5)+…+n^(0.5))

1 、题目 计算并输出 s=1+(1+2^(0.5))+(1+2^(0.5)+3^(0.5))+…+(1+2^(0.5)+3^(0.5)+…+n^(0.5)) 2、部分函数说明 C 库函数 double pow(double x, double y) 返回 x 的 y 次幂。 3、源代码实现 #include <stdio.h> #include <...

码莎拉蒂 4609

数据库系统SSD7 实验2《表的查询、更新与视图操作》

实验2《表的查询、更新与视图操作》 一、实验目的 熟悉和掌握对数据表中数据的查询操作和SQL命令的使用,学会灵活熟练的使用SQL 语句的各种形式,加深理解关系运算的各种操作(尤其是关系的选择,投影,连接和除运算); 熟悉和掌握数据表中数据的插入、修改、删除操作和命令的使用(熟悉使用UPDATE/INSERT/DELETE语句进行表操作);加深理解表的定义对数据更新的作用。 熟悉和掌握对数据表中视...

渣渣的夏天 6698

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【数据库】实验 1:数据库定义与操作语言实验

本篇文章相当于是一个简单的SQL语言归纳总结,包括数据库定义和一些基本的数据操作。

Coco416的博客 4583

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

实验二 SQL语言-更新操作命令

实验二 SQL语言-更新操作命令 一、 实验目的 利用INSERT,UPDATE,和DELETE命令或语句实现对表或视图数据的添加,修改与删除等更新操作。 二、实验内容与要求 请实践以下命令式更新操作, ①在学生表和学生选课表SC中分别添加表5-1和表52中的记录 ②备份表到TS中,并清空TS表x ①给S系的学生开设7号课程,建立所在相应的选课记录,成绩置定为60分 ①把年龄小于等于16岁的女生记录保存到表TS中。 ⑤在表中检索每门课均不及格的学生学号,姓名、年龄性别及所在系等信息, 把检索到的信息存入TS

qq_43527659的博客 3049

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

《数据库系统原理》实验5:表数据的维护

一、实验目的 熟练掌握使用Transact-SQL语言和通过Navicat输入表数据、修改表数据和删除表数据的操作。 二、实验内容 1、在数据库world中建立一个名为newlanguage的表,其结构与表countrylanguage完全一样(注意各字段的默认值、字符集、排序方式等),如下图: 注意IsOfficial是枚举类型,需指定值,否则会报错: 2、在表newlan...

哆啦梦工厂的博客 6653

数据库系统原理实验报告5 | 数据查询

整理自博主本科《数据库系统原理》专业课自己完成的实验报告,希望能给各位学习数据库的小伙伴们提供一些帮助。

wyd_333的博客 3361

数据库系统(二)SQL语言

其语句包括动词CREATE、ALTER和DROP。在DB中创建新表、修改表和删除表;为表加入索引等。(1)定义表(模式):创建表、删除表、修改表定义。(2)定义视图(外模式):创建视图、删除视图、间接修改视图定义(删除+创建)。(3)定义索引(内模式):创建索引、删除索引、间接修改索引定义(删除+创建)。语法格式CREATE TABLE<表名>(<列名><数据类型>[<列级完整性约束>][,<列名><数据类型>[<列级完整性约束>]]...[,<表级完整性约束>]);

m0_64178419的博客 2278

数据库系统原理实验报告3 | 数据定义

整理自博主本科《数据库系统原理》专业课自己完成的实验报告,希望能给各位学习数据库的小伙伴们提供一些帮助。

wyd_333的博客 4043

数据库系统原理实验报告4 | 数据完整性

整理自博主本科《数据库系统原理》专业课自己完成的实验报告,希望能给各位学习数据库的小伙伴们提供一些帮助。

wyd_333的博客 4683

数据库系统概论之 数据库定义与操作语言实验

数据库系统概论之 数据库定义与操作语言实验

LucianaiB的博客 952

HNU-数据库系统-实验1-数据定义/数据操纵

理解和掌握数据库 DDL 语言,能够熟练地使用 SQL DDL语句创建、修改和删除数据库和基本表。#定义模式create schema [模式名] authorization ;#删除模式drop schema //级联与限制必须二选一(CASADE会删除所有,而若该模式内有东西,RESTRICT会拒绝删除)#基本表的定义create table ([列级完整性约束]……[,]);

wolf的博客 2339
上一篇: 数据库系统概念第六版 第五章练习题 2 4
下一篇: 数据库实验4 SQL语言-SELECT查询操作
coding丁
博客等级 码龄9年 383粉丝 147原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值