『 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"…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...

【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
数据库——redis
一、Redis 介绍 1. 概述 Redis(Remote Dictionary Server)是一个开源的、高性能的内存键值数据库系统,具有以下核心特点: 内存存储架构:数据主要存储在内存中,提供微秒级的读写响应 多数据结构支持&…...

篇章一 论坛系统——前置知识
目录 1.软件开发 1.1 软件的生命周期 1.2 面向对象 1.3 CS、BS架构 1.CS架构编辑 2.BS架构 1.4 软件需求 1.需求分类 2.需求获取 1.5 需求分析 1. 工作内容 1.6 面向对象分析 1.OOA的任务 2.统一建模语言UML 3. 用例模型 3.1 用例图的元素 3.2 建立用例模型 …...
在ubuntu等linux系统上申请https证书
使用 Certbot 自动申请 安装 Certbot Certbot 是 Let’s Encrypt 官方推荐的自动化工具,支持多种操作系统和服务器环境。 在 Ubuntu/Debian 上: sudo apt update sudo apt install certbot申请证书 纯手动方式(不自动配置)&…...

Windows开机自动启动中间件
WinSW(Windows Service Wrapper 是一个开源的 Windows 服务包装器,它可以帮助你将应用程序打包成系统服务,并实现开机自启动的功能。 一、下载 WinSW 下载 WinSW-x64.exe v2.12.0 (⬇️ 更多版本下载) 和 sample-minimal.xml 二、配置 WinS…...

【Linux应用】Linux系统日志上报服务,以及thttpd的配置、发送函数
【Linux应用】Linux系统日志上报服务,以及thttpd的配置、发送函数 文章目录 thttpd服务安装thttpd配置thttpd服务thttpd函数日志效果和文件附录:开发板快速上手:镜像烧录、串口shell、外设挂载、WiFi配置、SSH连接、文件交互(RADX…...