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

mysql学习教程,从入门到精通,SQL 更新数据(UPDATE 语句)(17)

1、SQL 更新数据(UPDATE 语句)

SQL UPDATE 需要指定要更新的表、要修改的列以及新值,并且通常会通过WHERE子句来指定哪些行需要被更新。下面是一个简单的示例,说明如何使用UPDATE语句。
假设我们有一个名为employees的表,它包含员工的ID、姓名、职位和薪水。表结构可能如下:

CREATE TABLE employees (  id INT AUTO_INCREMENT PRIMARY KEY,  name VARCHAR(100),  position VARCHAR(100),  salary DECIMAL(10, 2)  
);

现在,如果我们想要将职位为"Salesperson"的所有员工的薪水增加1000,我们可以使用如下的UPDATE语句:

UPDATE employees  
SET salary = salary + 1000  
WHERE position = 'Salesperson';

这个语句的工作原理是:在employees表中查找所有position列值为’Salesperson’的行,并将这些行的salary列的值增加1000。

1.1、进阶示例

如果你想要同时更新多个列,可以在SET子句中列出所有需要更新的列和新值。例如,如果我们想要将所有职位为"Manager"的员工的职位更新为"Senior Manager",并将他们的薪水增加2000,我们可以这样做:

UPDATE employees  
SET position = 'Senior Manager', salary = salary + 2000  
WHERE position = 'Manager';

1.2、注意

  • 在使用UPDATE语句时,请确保你的WHERE子句正确无误,以避免错误地更新了不需要修改的行。
  • 如果没有使用WHERE子句,UPDATE语句将会更新表中的所有行,这通常不是你想要的结果。
  • 在执行UPDATE操作之前,建议备份相关数据,以防万一更新操作出现错误导致数据丢失或损坏。
  • 在某些数据库系统中,可能需要使用事务(Transaction)来确保UPDATE操作的原子性,尤其是在执行复杂的更新操作时。事务可以确保一系列操作要么全部成功,要么在遇到错误时全部回滚到操作前的状态。

1.3、实际案例

当然,让我们通过一个实际案例来更具体地了解SQL UPDATE 语句的使用。

假设我们有一个名为 orders 的表,它记录了在线商店的订单信息。这个表可能包含以下列:order_id(订单ID,主键)、customer_id(客户ID)、product_id(产品ID)、quantity(数量)、order_date(订单日期)和status(订单状态,如’pending’、‘shipped’、'delivered’等)。

现在,我们想要更新这个表中的某些数据。以下是几个实际案例及其对应的SQL UPDATE 语句:

案例 1: 更新订单状态

如果我们想要将订单ID为123的订单状态从’pending’更新为’shipped’,我们可以使用以下SQL语句:

UPDATE orders  
SET status = 'shipped'  
WHERE order_id = 123;

案例 2: 更新多个字段

如果我们想要同时更新订单ID为456的订单的状态和数量(假设数量需要减少1),我们可以这样做:

UPDATE orders  
SET status = 'delivered', quantity = quantity - 1  
WHERE order_id = 456;

案例 3: 基于另一个表更新数据

假设我们还有一个名为customers的表,其中包含客户的ID和他们的积分。我们想要给所有已经下单的客户增加积分。我们可以使用子查询或JOIN(在某些数据库系统中,如MySQL,直接JOIN在UPDATE中可能不受支持,但可以通过其他方式实现)来实现这一点。不过,为了简单起见,这里我们使用子查询:

UPDATE customers  
SET points = points + 100  
WHERE customer_id IN (  SELECT DISTINCT customer_id  FROM orders  
);

这个语句会给所有在orders表中有订单记录的客户增加100积分。

案例 4: 使用CASE语句进行条件更新

如果我们想要基于某些条件更新订单状态,比如将所有在特定日期之前下单且尚未发货的订单状态更新为’cancelled’,我们可以使用CASE语句:

UPDATE orders  
SET status = CASE  WHEN order_date < '2023-01-01' AND status = 'pending' THEN 'cancelled'  ELSE status  
END;

这个语句会检查所有订单,如果订单的日期在2023年1月1日之前且状态为’pending’,则将其状态更新为’cancelled’;否则,状态保持不变。

注意

  • 在执行这些更新之前,请确保你有足够的权限,并且理解这些更新将如何影响数据。
  • 在生产环境中,最好先在测试环境中验证这些更新语句。
  • 始终记得备份数据,以防万一更新操作导致数据丢失或错误。
  • 在使用IN子句和子查询时,特别是当子查询返回大量行时,要注意性能问题。在某些情况下,使用EXISTS可能更高效。
  • 某些数据库系统(如PostgreSQL)支持更复杂的UPDATE ... FROM语法,允许你直接在UPDATE语句中使用JOIN,但在使用之前请查阅你的数据库系统的文档。

相关文章:

mysql学习教程,从入门到精通,SQL 更新数据(UPDATE 语句)(17)

1、SQL 更新数据&#xff08;UPDATE 语句&#xff09; SQL UPDATE 需要指定要更新的表、要修改的列以及新值&#xff0c;并且通常会通过WHERE子句来指定哪些行需要被更新。下面是一个简单的示例&#xff0c;说明如何使用UPDATE语句。 假设我们有一个名为employees的表&#xf…...

【吊打面试官系列-MySQL面试题】MyISAM 表格将在哪里存储,并且还提供其存储格式?

大家好&#xff0c;我是锋哥。今天分享关于【MyISAM 表格将在哪里存储&#xff0c;并且还提供其存储格式&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; MyISAM 表格将在哪里存储&#xff0c;并且还提供其存储格式&#xff1f; 每个 MyISAM 表格以三种格式存储…...

常用的图像增强的算法之间的联系和区别

Unsharp Mask (USM)、拉普拉斯算子、直方图均衡化和伽马增强是图像处理中常见的技术&#xff0c;但它们在原理、作用和应用场景上有显著不同。以下是对这些方法的详细比较&#xff1a; 1. Unsharp Mask (USM) 原理&#xff1a;USM 是通过对图像进行模糊处理&#xff08;如高斯…...

SpringBoot+Vue考试系统免费分享

源码说明&#xff1a; 这是一个开源的SpringBoot与Vue开发的在线考试系统。经过站长测试&#xff0c;系统稳定可用&#xff0c;允许重复考试。 环境&#xff1a; 需要安装的环境包括Node.js v14.21.3、JDK8、Maven以及MySQL 5.7。 前端部署教程&#xff1a; 执行 npm inst…...

音视频入门基础:FLV专题(1)——FLV官方文档下载

一、FLV简介 Flash Video&#xff08;简称FLV&#xff09;&#xff0c;是一种网络视频格式&#xff0c;用作流媒体格式&#xff0c;它的出现有效地解决了视频文件导入Flash后&#xff0c;使导出的SWF文件体积庞大&#xff0c;不能在网络上有效使用等缺点。 一般FLV文件包在SW…...

使用c#制作一个小型桌面程序

封装dll 首先使用visual stdio 创建Dll新项目,然后属性管理器导入自己的工程属性表&#xff08;如果没有可以参考visual stdio 如何配置opencv等其他环境&#xff09; 创建完成后 系统会自动生成一些文件&#xff0c;其中 pch.cpp 先不要修改&#xff0c;pch.h中先导入自己需…...

Clip studio paint百度云下载:附安装包+教程

首先补一个介绍&#xff0c;Clip Studio Paint&#xff08;即CSP&#xff09;&#xff1a;这是一款专业的绘画和漫画创作软件&#xff0c;拥有丰富的绘画工具&#xff0c;适合漫画创作者使用。其界面友好&#xff0c;工具齐全&#xff0c;能够满足漫画创作中的各种需求。 用过…...

从Yargs源码学习中间件的设计

yargs中间件介绍 yargs 是一个用于解析命令行参数的流行库&#xff0c;它能帮助开发者轻松地定义 CLI&#xff08;命令行接口&#xff09;&#xff0c;并提供参数处理、命令组织、help文本自动生成等功能。今天我们来学习一下它对中间件的支持。 中间件的API详细信息&#xff0…...

高级I/O知识分享【epoll || Reactor ET,LT模式】

博客主页&#xff1a;花果山~程序猿-CSDN博客 文章分栏&#xff1a;Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习&#xff0c;一起进步&#xff0c;一起探索编程的无限可能吧&#xff01;让我们一起努力&#xff0c;一起成长&#xff01; 目录 一&#xff0c;接口 epo…...

Matlab 的.m 文件批量转成py文件

在工作中碰到了一个问题&#xff0c;需要将原来用matlab gui做出来的程序改为python程序&#xff0c;因为涉及到很多文件&#xff0c;所以在网上搜了搜有没有直接能转化的库。参考了【Matlab】一键Matlab代码转python代码详细教程_matlab2python-CSDN博客 这位博主提到的matla…...

【软考】传输层协议TCP与UDP

目录 1. TCP1.1 说明1.2 三次握手 2. UDP3. 例题3.1 例题1 1. TCP 1.1 说明 1.TCP(Transmission Control Protocol&#xff0c;传输控制协议)是整个 TCP/IP 协议族中最重要的协议之一。2.它在IP提供的不可靠数据服务的基础上为应用程序提供了一个可靠的、面向连接的、全双工的…...

Arthas dashboard(当前系统的实时数据面板)

文章目录 二、命令列表2.1 jvm相关命令2.1.1 dashboard&#xff08;当前系统的实时数据面板&#xff09; 二、命令列表 2.1 jvm相关命令 2.1.1 dashboard&#xff08;当前系统的实时数据面板&#xff09; 使用场景&#xff1a; 在 Arthas 中&#xff0c;dashboard 命令用于提…...

微服务保护之熔断降级

在微服务架构中&#xff0c;服务之间的调用是通过网络进行的&#xff0c;网络的不确定性和依赖服务的不可控性&#xff0c;可能导致某个服务出现异常或性能问题&#xff0c;进而引发整个系统的故障&#xff0c;这被称为 微服务雪崩。为了防止这种情况发生&#xff0c;常用的一些…...

TomCat乱码问题

TomCat控制台乱码问题 乱码问题解决&#xff1a; 响应乱码问题 向客户端响应数据&#xff1a; package Servlet;import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servl…...

依赖库查看工具Dependencies

依赖库查看工具&#xff1a;Dependencies Dependencies 是一款 Windows 平台下的静态分析工具&#xff0c;用来分析可执行文件&#xff08;EXE、DLL 等&#xff09;所依赖的动态链接库&#xff08;DLL&#xff09;。它可以帮助开发者和系统管理员快速查找程序在运行时可能缺少的…...

Kafka 下载安装及使用总结

1. 下载安装 官网下载地址&#xff1a;Apache Kafka 下载对应的文件 上传到服务器上&#xff0c;解压 tar -xzf kafka_2.13-3.7.0.tgz目录结果如下 ├── bin │ └── windows ├── config │ └── kraft ├── libs ├── licenses └── site-docs官方文档…...

python实现多个pdf文件合并

打印发票时&#xff0c;需要将pdf合并成一个&#xff0c;单页两张打印。网上一些pdf合并逐渐收费&#xff0c;这玩意儿都能收费&#xff1f;自己写一个脚本使用。 实现代码&#xff1a; 输入pdf文件夹路径data_dir&#xff0c;统计目录下的“合并后的PDF”文件夹下&#xff0c;…...

2409js,学习js2

原文 全局对象 function sayHi() {alert("Hello"); }// 全局对象的函数. window.sayHi(); alert(window.innerHeight);更改背景 document.body.style.background "red";setTimeout(() > document.body.style.background "", 1000);当前地…...

SpellBERT: A Lightweight Pretrained Model for Chinese Spelling Check(EMNLP2021)

SpellBERT: A Lightweight Pretrained Model for Chinese Spelling Check(EMNLP2021) 一.概述 作者认为许多模型利用预定义的混淆集来学习正确字符与其视觉上相似或语音上相似的误用字符之间的映射&#xff0c;但映射可能是域外的。为此&#xff0c;我们提出了SpellBERT&…...

【机器学习】--- 决策树与随机森林

文章目录 决策树与随机森林的改进&#xff1a;全面解析与深度优化目录1. 决策树的基本原理2. 决策树的缺陷及改进方法2.1 剪枝技术2.2 树的深度控制2.3 特征选择的优化 3. 随机森林的基本原理4. 随机森林的缺陷及改进方法4.1 特征重要性改进4.2 树的集成方法优化4.3 随机森林的…...

【3D设计】资源获取方法论:7个精准化策略助你高效获取专业级素材

【3D设计】资源获取方法论&#xff1a;7个精准化策略助你高效获取专业级素材 【免费下载链接】sketchfab sketchfab download userscipt for Tampermonkey by firefox only 项目地址: https://gitcode.com/gh_mirrors/sk/sketchfab 在3D内容创作领域&#xff0c;优质资源…...

解锁戴森电池3大突破:固件破解技术让32次红灯故障电池重生

解锁戴森电池3大突破&#xff1a;固件破解技术让32次红灯故障电池重生 【免费下载链接】FU-Dyson-BMS (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum Battery Management System 项目地址: https://gitcode.com/gh_mirrors/fu/FU-Dyson-BMS 当你的戴森吸尘器突…...

基于本机配置的 YOLO26 Conda ss‘安装教程:Windows 11 + RTX 3050 Ti 实战版

基于本机配置的 YOLO26 Conda 环境安装教程&#xff1a;Windows 11 RTX 3050 Ti 实战版 这篇文章不是泛泛而谈的“通用装环境教程”&#xff0c;而是按你这台电脑当前的实际配置整理出来的一份可直接照做的安装方案。 如果你以前没有配过深度学习环境&#xff0c;只想先把 co…...

效率提升秘籍:用快马平台快速生成魔鬼面具试戴应用代码骨架

效率提升秘籍&#xff1a;用快马平台快速生成魔鬼面具试戴应用代码骨架 最近在做一个有趣的个人项目——魔鬼面具在线试戴应用。作为一个前端开发者&#xff0c;我深知从零开始搭建这种交互式应用需要花费不少时间在基础框架上。幸运的是&#xff0c;我发现了InsCode(快马)平台…...

bge-large-zh-v1.5在RAG中的应用:提升问答系统准确率

bge-large-zh-v1.5在RAG中的应用&#xff1a;提升问答系统准确率 1. RAG系统与Embedding模型的关系 1.1 什么是RAG系统 RAG&#xff08;Retrieval-Augmented Generation&#xff09;系统是现代问答系统的核心技术架构&#xff0c;它通过两个关键步骤回答用户问题&#xff1a…...

Qwen3-4B-Thinking环境部署:vLLM推理加速+Web前端调用完整步骤

Qwen3-4B-Thinking环境部署&#xff1a;vLLM推理加速Web前端调用完整步骤 1. 开篇&#xff1a;为什么你需要这个组合方案&#xff1f; 如果你正在寻找一个既能快速推理大模型&#xff0c;又能通过网页轻松对话的解决方案&#xff0c;那么你来对地方了。今天要介绍的&#xff…...

别再只会用0x22读VIN了!手把手教你用UDS诊断DID读取ECU的隐藏数据(附实战报文分析)

解锁ECU隐藏数据&#xff1a;UDS诊断中DID的高级应用实战 在汽车电子诊断领域&#xff0c;UDS协议中的0x22服务&#xff08;读取数据标识符&#xff09;常被工程师们简化为读取VIN码等基础信息的工具。但DID的真正潜力远不止于此——它就像一把可以打开ECU内部数据宝库的万能钥…...

OptiScaler终极指南:一键解锁三大显卡厂商的免费超采样神器

OptiScaler终极指南&#xff1a;一键解锁三大显卡厂商的免费超采样神器 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler 还在为游戏…...

避免断连!Ubuntu服务器安全重启网络服务的3个技巧与注意事项

避免断连&#xff01;Ubuntu服务器安全重启网络服务的3个技巧与注意事项 远程管理Ubuntu服务器时&#xff0c;网络服务的稳定性直接关系到运维效率。尤其在AWS、Azure等云环境中&#xff0c;一次不当的网络服务重启可能导致SSH连接中断&#xff0c;迫使你通过繁琐的控制台重新接…...

LFM2.5-1.2B-Thinking-GGUF实战教程:用三句话讲清GGUF——模型本身即教程

LFM2.5-1.2B-Thinking-GGUF实战教程&#xff1a;用三句话讲清GGUF——模型本身即教程 1. 认识LFM2.5-1.2B-Thinking-GGUF LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的一款轻量级文本生成模型&#xff0c;专为低资源环境优化设计。这个模型最大的特点是内置了GGUF格式的模型文…...