当前位置: 首页 > news >正文

【数据库】MySQL表的Updata(更新)和Delete(删除)操作

目录

1.Update

案例1:将孙悟空同学的数学成绩变更为 80 分

 案例2:将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分

案例3:将总成绩倒数前三的 3 位同学的数学成绩加上 30 分

案例4:将所有同学的语文成绩更新为原来的 2 倍

2.Delete

 案例1:删除孙悟空同学的考试成绩

 案例2:删除整张表

3.截断表


在了解操作之前我们先创建出一个用于案例的表。

CREATE TABLE exam_result ( 
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, 
name VARCHAR(20) NOT NULL COMMENT '同学姓名', 
chinese float DEFAULT 0.0 COMMENT '语文成绩', 
math float DEFAULT 0.0 COMMENT '数学成绩', 
english float DEFAULT 0.0 COMMENT '英语成绩' 
);

 再向表中插入数据,语句都是我们之前接触过的。

INSERT INTO exam_result (name, chinese, math, english) VALUES 
('唐三藏', 67, 98, 56), 
('孙悟空', 87, 78, 77), 
('猪悟能', 88, 98, 90), 
('曹孟德', 82, 84, 67), 
('刘玄德', 55, 85, 45), 
('孙权', 70, 73, 78), 
('宋公明', 75, 65, 30);

1.Update

案例1:将孙悟空同学的数学成绩变更为 80 分

首先我们先查看所有人的数学分数,可以看到孙悟空的数学成绩为78。 

然后使用update来更新分数为80;

update exam_result set math=80 where name ='孙悟空';

可以看到孙悟空的成绩已经更新为80; 

 案例2:将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分

 首先我们先筛选出未更新前的成绩

接下来使用update ..set...更新

update  exam_result math set math=60,chinese = 70 where name='曹孟德';

可以看到成绩已经更新为案例要求的分数。

案例3:将总成绩倒数前三的 3 位同学的数学成绩加上 30 分

由于题目的要求非常长2,我们不妨一步一步来。

先筛选出总成绩倒数先前三的同学

select name,math + chinese+english as total from exam_result order by total limit 3;

 因为我们不确定再给他们的数学成绩加上三十分之后倒数前三还是不是他们三个人,所以我们先如上操作。

我们再给这几个人的数学成绩加上30分

update exam_result set math=math+30 order by chinese+math+english asc limit 3;

 可以看到在给原先的倒数前三数学成绩加上三十分后,曹孟德现在已经不在倒数前三的位置了。

也就是说我们可以在order by后可以继续对数据进行更改。

案例4:将所有同学的语文成绩更新为原来的 2 倍

先观察没有更新前的语文成绩

对其更新

update exam_result set chinese = chinese * 2;

 

注意:这个例子是提醒我们使用时在没有使用where筛选条件的情况下慎用update,不然会使所有的数据进行更新!

2.Delete

 案例1:删除孙悟空同学的考试成绩

 首先查看孙悟空的考试成绩。

再使用delete语句进行删除

delete from exam_result where name = '孙悟空';

再次查询时可以看到孙悟空的考试成绩已经成为了empty。

 案例2:删除整张表

在操作之前我们要明白的是MySQL中的表中的数据是不一样的,delete操作主要是删除表中的数据,表的结构是不受影响的

所以第一步先准备测试用的表

CREATE TABLE for_delete ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) 
);

插入一些数据

INSERT INTO for_delete (name) VALUES ('A'), ('B'), ('C'); 

接下来就删除这个表的内容

delete from for_delete

接下来我们继续查看这个表的结构时会发现这个表的结构依然存在

 并且我们再向其中插入数据

可以看到我们之前设置的id为自增长键并不会重置。

3.截断表

同样的再操作案例之前先简单创建一个可以操作的表

CREATE TABLE for_truncate ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) 
); 

插入一些数据

INSERT INTO for_truncate (name) VALUES ('A'), ('B'), ('C');

查看表结构

此时我们对表进行truncate操作

truncate for_truncate;

 再次查看表结构

这次我们可以发现自增长键的计数器已经没有了

我们再向里插入数据:

insert into for_truncate (name) values ('E');

 

可以看到我们的自增长键被重置为1了,而delete操作不会重置,这就是两个操作的区别。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Hot100】LeetCode—394. 字符串解码
  • Post-Training有多重要?一文带你了解全部细节
  • 【MySQL00】【 杂七杂八】
  • Python 错误 TypeError 解析,实际错误实例详解 (五)
  • 强调重点元素、弱化辅助元素、去掉无关元素,工控HMI还能好不了
  • ChatGPT在论文写作领域的应用:初稿设计
  • 在前端中Proj4.js使用简单介绍
  • HarmonyOS】ArkTS学习之基于TextTimer的简易计时器的elapsedTime最小时间单位问题
  • LinuxPTP的安装与应用
  • HCIE云计算--灾备
  • 网络协议-SSH
  • claude和chatgpt对比:哪一个更适合你?
  • AI自动生成PPT哪个软件好?如何自动生成专业级PPT?
  • 仿论坛项目--Kafka,构建TB级异步消息系统
  • 数据结构基本知识
  • JavaScript 如何正确处理 Unicode 编码问题!
  • CentOS 7 防火墙操作
  • IndexedDB
  • Java|序列化异常StreamCorruptedException的解决方法
  • js算法-归并排序(merge_sort)
  • 如何解决微信端直接跳WAP端
  • 如何利用MongoDB打造TOP榜小程序
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 为视图添加丝滑的水波纹
  • Java总结 - String - 这篇请使劲喷我
  • Nginx实现动静分离
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​​​【收录 Hello 算法】9.4 小结
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ‌U盘闪一下就没了?‌如何有效恢复数据
  • (13):Silverlight 2 数据与通信之WebRequest
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (八)Spring源码解析:Spring MVC
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • ******之网络***——物理***
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net framework 4.8 开发windows系统服务
  • .NET Remoting学习笔记(三)信道
  • .net 按比例显示图片的缩略图
  • .NET 解决重复提交问题
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .netcore 获取appsettings
  • .NET分布式缓存Memcached从入门到实战
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • @ConditionalOnProperty注解使用说明
  • @Documented注解的作用