『 MySQL数据库 』CRUD之UD,表的数据更新(修改)及删除
文章目录
- 🥩 Update (更新/修改) 🦖
- 🥚 修改单行数据的某个字段内的数据 🦕
- 🥚 配合LIMIT分页与ORDER BY 对符合条件的多条数据进行修改 🦕
- 🥚 对整表的某个数据字段进行修改 🦕
- 🥩 Delete (删除数据) 🦖
- 🥚 删除单条数据 🦕
- 🥚 删除整表数据 🦕
- 🥚 截断表 (TRUNCATE) 🦕
- 🥩 总结 🦖🦖🦖🦖🦖
🥩 Update (更新/修改) 🦖
该语法主要针对于对数据库的表内数据进行修改;
一般该操作需要配合条件筛选,否则操作将影响整张表;
语法:
UPDATE table_name SET column = expr[,column = expr ... ]
[WHERE ...] [ORDER BY ...] [LIMIT ...]
存在一张表:
+----+---------+---------+------+---------+
| id | name | chinese | math | english |
+----+---------+---------+------+---------+
| 1 | Lihua | 67 | 88 | 90 |
| 2 | Liming | 57 | 58 | 70 |
| 3 | Zhaolao | 66 | 80 | 47 |
| 4 | Wu | 76 | 70 | 47 |
| 5 | Wuqi | 88 | 43 | 80 |
| 6 | Liqiang | 89 | 92 | 90 |
| 7 | Qinsu | 90 | 74 | 67 |
| 8 | Zhaoli | 54 | 74 | 100 |
+----+---------+---------+------+---------+
🥚 修改单行数据的某个字段内的数据 🦕
示例:将name字段为Lihua的chinese字段数据修改为100
mysql> select name,chinese from Point where name ='Lihua';# 打印数据进行观察
+-------+---------+
| name | chinese |
+-------+---------+
| Lihua | 67 |
+-------+---------+
1 row in set (0.00 sec)mysql> update Point set chinese=100 where name='Lihua';# 修改数据
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0mysql> select name,chinese from Point where name ='Lihua';# 打印数据进行观察
+-------+---------+
| name | chinese |
+-------+---------+
| Lihua | 100 |
+-------+---------+
1 row in set (0.00 sec)
也可对单行数据的多个字段数据进行修改,前提是这个数据具有唯一属性(体现了主键约束的重要性);
🥚 配合LIMIT分页与ORDER BY 对符合条件的多条数据进行修改 🦕
示例:将字段条件chinese+math+english前3大的数据中的math字段数据+30
# 打印数据进行查看 -- 修改前
mysql> select name,math from Point order by math+chinese+english desc limit 3;
+---------+------+
| name | math |
+---------+------+
| Lihua | 88 |
| Liqiang | 92 |
| Qinsu | 74 |
+---------+------+
3 rows in set (0.00 sec)mysql> select name,math+chinese+english from Point order by math+chinese+english desc limit 3;
+---------+----------------------+
| name | math+chinese+english |
+---------+----------------------+
| Lihua | 278 |
| Liqiang | 271 |
| Qinsu | 231 |
+---------+----------------------+
3 rows in set (0.00 sec)# 修改数据
mysql> update Point set math=math+30 order by math+chinese+english desc limit 3;
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0# 打印数据进行查看 -- 修改后
mysql> select name,math+chinese+english from Point order by math+chinese+english desc limit 3;
+---------+----------------------+
| name | math+chinese+english |
+---------+----------------------+
| Lihua | 308 |
| Liqiang | 301 |
| Qinsu | 261 |
+---------+----------------------+
3 rows in set (0.00 sec)mysql> select name,math from Point order by math+chinese+english desc limit 3;
+---------+------+
| name | math |
+---------+------+
| Lihua | 118 |
| Liqiang | 122 |
| Qinsu | 104 |
+---------+------+
当需要修改的数据条件繁琐的前提可以先使用SELECT FROM
语句先对需要修改的数据进行查看筛选,再对该SELECT FROM
语句根据筛选条件修改为对应的UPDATE SET
语句对数据进行修改!
🥚 对整表的某个数据字段进行修改 🦕
在UPDATE SET
语句中若是没有用WHERE
语句进行筛选则更新整表!
在SQL中对整表的操作需要慎重;
示例:将整表中的english字段数据修改为 *=2 ;
# 使用SELECT FROM语句对数据进行查看 -- 修改前
mysql> select id,name,english from Point;
+----+---------+---------+
| id | name | english |
+----+---------+---------+
| 1 | Lihua | 90 |
| 2 | Liming | 70 |
| 3 | Zhaolao | 47 |
| 4 | Wu | 47 |
| 5 | Wuqi | 80 |
| 6 | Liqiang | 90 |
| 7 | Qinsu | 67 |
| 8 | Zhaoli | 100 |
+----+---------+---------+
8 rows in set (0.00 sec)# 对数据进行修改
mysql> update Point set english*=2 ; #SQL语句中不支持*=,+=等语法!
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*=2' at line 1# errormysql> update Point set english=english*2 ;# 正确
Query OK, 8 rows affected (0.01 sec)
Rows matched: 8 Changed: 8 Warnings: 0# 使用SELECT FROM语句对数据进行查看 -- 修改后
mysql> select id,name,english from Point;
+----+---------+---------+
| id | name | english |
+----+---------+---------+
| 1 | Lihua | 180 |
| 2 | Liming | 140 |
| 3 | Zhaolao | 94 |
| 4 | Wu | 94 |
| 5 | Wuqi | 160 |
| 6 | Liqiang | 180 |
| 7 | Qinsu | 134 |
| 8 | Zhaoli | 200 |
+----+---------+---------+
8 rows in set (0.00 sec)
🥩 Delete (删除数据) 🦖
该语句一般用于对某条数据的删除,也可以删除整表的数据;
语法:
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
存在一张表(to_del):
+-----+-----------+
| id | name |
+-----+-----------+
| 001 | Lihua |
| 002 | Liming |
| 003 | Zhangchao |
| 004 | Zhaoli |
| 005 | Lili |
+-----+-----------+
🥚 删除单条数据 🦕
示例:删除id字段为2的数据
mysql> select * from to_del-> ;
+-----+-----------+
| id | name |
+-----+-----------+
| 001 | Lihua |
| 002 | Liming |
| 003 | Zhangchao |
| 004 | Zhaoli |
| 005 | Lili |
+-----+-----------+
5 rows in set (0.00 sec)mysql> delete from to_del where id=2;
Query OK, 1 row affected (0.00 sec)mysql> select * from to_del;
+-----+-----------+
| id | name |
+-----+-----------+
| 001 | Lihua |
| 003 | Zhangchao |
| 004 | Zhaoli |
| 005 | Lili |
+-----+-----------+
4 rows in set (0.00 sec)
🥚 删除整表数据 🦕
与UPDATE SET
语句相同,DELETE FROM
语句也可以删除整表的数据;
-- 查看表内数据 删除前
mysql> select * from to_del;
+-----+-----------+
| id | name |
+-----+-----------+
| 001 | Lihua |
| 003 | Zhangchao |
| 004 | Zhaoli |
| 005 | Lili |
+-----+-----------+
4 rows in set (0.00 sec)-- 删除整表数据
mysql> delete from to_del;
Query OK, 4 rows affected (0.00 sec)-- 查看表内数据 删除后
mysql> select * from to_del;
Empty set (0.00 sec)
🥚 截断表 (TRUNCATE) 🦕
语法:
TRUNCATE [TABLE] table_name;
截断表的操作与删除整表的作用类似也为清除整表内容(不作示例);
但存在不同;
同样以该表进行测试;
+-----+-----------+
| id | name |
+-----+-----------+
| 001 | Lihua |
| 002 | Liming |
| 003 | Zhangchao |
| 004 | Zhaoli |
| 005 | Lili |
+-----+-----------+
-
使用
SHOW CREATE TABLE table_name \G
对表的详细信息进行查看;mysql> show create table to_del\G *************************** 1. row ***************************Table: to_del Create Table: CREATE TABLE `to_del` ( `id` int(3) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT 'id增加主键约束', `name` varchar(20) NOT NULL COMMENT 'name增加唯一键约束', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 1 row in set (0.00 sec)
对该表进行查看时自增
AUTO_INCREMENT
关键字为6
; -
使用
DELETE FROM
删除整表;mysql> delete from to_del; Query OK, 5 rows affected (0.01 sec)mysql> show create table to_del\G *************************** 1. row ***************************Table: to_del Create Table: CREATE TABLE `to_del` ( `id` int(3) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT 'id增加主键约束', `name` varchar(20) NOT NULL COMMENT 'name增加唯一键约束', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 1 row in set (0.00 sec)
使用
DELETE FROM
对整表进行删除时其AUTO_INCREMENT
关键字并没有改变; -
使用
TRUNCATE
对整表进行截断操作;mysql> truncate to_del; Query OK, 0 rows affected (0.00 sec)mysql> show create table to_del\G *************************** 1. row ***************************Table: to_del Create Table: CREATE TABLE `to_del` ( `id` int(3) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT 'id增加主键约束', `name` varchar(20) NOT NULL COMMENT 'name增加唯一键约束', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 1 row in set (0.00 sec)
而使用
TRUNCATE
对表进行截断操作时此时该表的AUTO_INCREMENT
关键字不见了;
综上所述可以确定:
1. TRUNCATE
只能对整表进行操作,且不能像DELETE
对部分数据进行操作;
2. 若是表中存在AUTO_INCREMENT
自增约束时,TRUNCATE
的截断表操作将会重置AUTO_INCREMENT
;
除此之外,对于DELETE
来说,TRUNCATE
的删除操作会较快,因为TRUNCATE
在操作删除数据时并不经过真正的事务,所以无法回滚;
🥩 总结 🦖🦖🦖🦖🦖
对于对表内数据的操作来说,无论是UPDATE
还是DELETE
与TRUNCATE
对整表进行操作都应该注意;
尽量在对表内数据修改或删除前对需要修改\删除的数据使用 SELETC
进行查看,避免误操作;
相关文章:
『 MySQL数据库 』CRUD之UD,表的数据更新(修改)及删除
文章目录 🥩 Update (更新/修改) 🦖🥚 修改单行数据的某个字段内的数据 🦕🥚 配合LIMIT分页与ORDER BY 对符合条件的多条数据进行修改 🦕🥚 对整表的某个数据字段进行修改 🦕 &#…...

贪心算法及相关例题
目录 什么是贪心算法? leetcode455题.分发饼干 leetcode376题.摆动序列 leetcode55题.跳跃游戏I leetcode45题.跳跃游戏II leetcode621题.任务调度器 leetcode435题.无重叠空间 leetcode135题.分发糖果 什么是贪心算法? 贪心算法更多的是一种思…...

给企业做公众号运营你都有哪些宝贵经验?
运营企业公众号需要长期的坚持和不断的创新,如何运营好一个企业公众号,使其成为企业与受众互动、传递价值、提升品牌形象的平台,是许多企业所面临的挑战。但只要不断学习,总结经验,就一定能够找到适合自己企业的公众号…...
2023亚太地区数学建模B题思路分析+模型+代码+论文
目录 2023亚太地区数学建模A题思路:开赛后第一时间更新,获取见文末名片 2023亚太地区数学建模B题思路:开赛后第一时间更新,获取见文末名片 2023亚太地区数学建模C题思路:开赛后第一时间更新,获取见文末名…...

Electron+Ts+Vue+Vite桌面应用系列:sqlite增删改查操作篇
文章目录 1️⃣ sqlite应用1.1 sqlite数据结构1.2 初始化数据库1.3 初始化实体类1.4 操作数据类1.5 页面调用 优质资源分享 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418 ElectronTsVueVite桌面应用系列 :这个系列包括了从桌…...
c语言编程题经典100例——(36~40例)
1,实现快速排序算法。 下面是用C语言实现快速排序算法的示例代码: #include <stdio.h> void swap(int* a, int* b) { int t *a; *a *b; *b t; } int partition(int arr[], int low, int high) { int pivot arr[high]; int i (low …...
SQL Server实现参数化增删改查Class类
目录 SqlServerDatabase.Class Main调用 SqlServerDatabase.Class using System; using System.Data; using System.Data.SqlClient; class SqlServerDatabase { private readonly string connectionString; public SqlServerDatabase(string connectionString) { …...

【Linux】 sudo命令使用
sudo sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替…...

Redis key的类型以及命令
系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…...

数组元素积的符号
数组元素积的符号 描述 : 已知函数 signFunc(x) 将会根据 x 的正负返回特定值: 如果 x 是正数,返回 1 。如果 x 是负数,返回 -1 。如果 x 是等于 0 ,返回 0 。 给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的…...

数据脱敏方案
数据脱敏方案 什么是数据脱敏 数据脱敏的定义 数据脱敏百度百科中是这样定义的: 数据脱敏,指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。这样就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏…...

蓝桥杯每日一题2023.11.28
题目描述 三羊献瑞 - 蓝桥云课 (lanqiao.cn) 题目分析 本题首先进行观察可以确定 1.“三”为 1 (十进制数字要进位进一位) 2.“祥”一定不为 0 (有前导0就不能算为 4 位数) 使用搜索时将其特判 #include<bits/stdc.h> …...
【数据库连接池】01:连接池初始化
连接池初始化 OVERVIEW 连接池初始化1.Connection类Connection.hConnection.cpp 2.CommonConnectionPool类CommonConnectionPool.hCommonConnectionPool.cpp 1.Connection类 封装Connection类,在该类内调用mysql提供的接口实现对数据库的增删改查, Con…...

Java基于springboot开发的土特产网站商城多商家源码
主要功能:用户可以浏览特产,按分类和产地搜索,按分类查询特产,搜索店铺,查看评价,加入购物车,下单,查看店铺主页信息特产等店铺内搜索等;用户可申请开通店铺,…...

Linux CentOS7 LVM
LVM(Logical Volume Manger)逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分区管理的灵活性。物理设备,是用于保留逻辑卷中所存储数据的存储设备。它们是块设备,可以是…...
ArkTS开发webview,html页面中的input和按钮等操作均无响应 【Bug已解决-鸿蒙开发】
文章目录 项目场景:问题描述原因分析:解决方案(根据此方法即可解决此Bug):本文相关知识本Bug常规排除步骤ArkTS项目场景: 在鸿蒙开发过程遇到的问题: 问题 ArkTS API9 使用webview加载的html,页面中的按钮和input等操作均无响应 是有相关API设置webview是否可以touch或…...

滴滴、阿里云、语雀相继宕机,损失巨大,软件的高可用失效了么?
在北京寒冬的夜里,小程加班完成了当天最后一个任务,他拖着疲惫的身体离开了位于西二旗的工位,走到办公楼下,下意识地拿出手机打开滴滴,准备打车回家,但是他却发现滴滴的打车页面显示网络异常。起初小程以为…...
基于binlog实现一些业务(Binlog4j)
前言 今天要跟大家分享的是监控数据变化,实现自己的业务的另一个思路,基于数据库的binglog。我这里是用的Binlog4j实现,希望看总结的,直接看最后。 一、Binlog4j是什么? Binlog4j是轻量级 Mysql Binlog 客户端, 提供宕…...

python实现rpc的几种方式(SimpleXMLRPCServer 自带的、第三方ZeroRPC)、连接linux远程开发分布式锁、分布式id
1 python实现rpc的几种方式 1.1 SimpleXMLRPCServer 自带的 1.2 第三方ZeroRPC 2 连接linux远程开发 3 分布式锁 4 分布式id 1 python实现rpc的几种方式 # 远程过程调用-1 借助于rabbitmq,可以跨语言-2 SimpleXMLRPCServer 自带的-3 ZeroRPC-4 GRPC:跨语言的 htt…...

ARM麒麟V10 auditctl启动失败处理
问题: 业务服务器需要启用审计服务,但是启动审计服务失败,查看状态提示audit0。 修改配置文件/boot/efi/EFI/kylin/grub.cfg 删除audit0,或者设置audit1。 重启服务器后验证状态。 auditctl -D echo "-w /data -p rwxa"…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...