SQL脚本利用带关联子查询Update语句更新数据

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【5月更文挑战第5天】

》》》》》魏红斌带你学sql脚本《《《《《


更多sql脚本学习点击个人主页

作为技术开发者,本月我们的核心焦点在于深入探索SQL脚本的编写与应用,这一关键技术使得我们能够高效地查询与操作数据库中的信息。通过精心编写的SQL指令,我们能够灵活地检索所需数据,同时也支持对数据库进行插入、更新、删除等写操作。尤为值得一提的是,这些脚本的封装与复用特性,意味着一旦开发完成,它们可以迅速适应不同场景,仅需调整相应参数即可在新环境中部署运行,极大地提升了开发效率与代码的可维护性。

考虑到实际开发环境中MySQL安装配置的多样性和复杂性,我们巧妙利用了阿里云的RDS MySQL版服务,它为我们提供了一个稳定、高效的云端数据库解决方案。无需费心于本地环境搭建,只需几个简单的步骤,即可接入功能完备的云数据库:

对于初次接触云服务的开发者:

  1. 访问选购平台:第一步,直接访问阿里云数据库网站,这里是获取云数据库服务的起点。
  2. 选购与购买:在丰富的配置选项中,根据项目需求选择合适的RDS套餐,完成在线支付流程。这一过程如同在线购物一样直观便捷。
  3. 控制台操作:购买成功后,你将自动进入RDS控制台,这里是你的数据库管理中枢。你可以执行包括数据库创建、用户管理在内的所有必要操作。

已有阿里云数据库的用户:

  • 访问实例:直接跳转至RDS实例列表,根据地域筛选并点击目标实例ID。
  • 数据库与账号管理:在左侧菜单,先“创建数据库”以准备数据存储空间,随后在“账号管理”中创建访问账号,确保安全地操控数据库。
  • 登录使用:创建账号后,利用提供的DMS工具登录。输入账号凭证,成功登录后,通过双击数据库名称即可开始使用,执行SQL语句并实时查看执行结果。

无论是从零开始还是在现有基础上拓展,阿里云RDS MySQL版都为我们提供了一条快速、安全且高效的路径,使我们能够专注于SQL脚本的开发与优化,而非基础架构的繁琐配置。

  • 推荐:同时还要提一下阿里云自研的PolarDB国产化数据库,100%兼容MySQL和PostgreSQL生态,支持分布式扩展,高度兼容Oracle语法。也是咱们的国货之光,希望同学们了解支持:阿里云polardb国产数据
  • 编写SQL脚本

在DMS界面的SQL编辑器区域,你可以开始编写SQL脚本。无论是查询(SELECT)、插入(INSERT)、更新(UPDATE)、删除(DELETE)还是创建表(CREATE TABLE)等操作,都可以在这里直接输入。

  • 执行SQL脚本

编写好SQL脚本后,点击“执行”或者相应的运行按钮(通常是一个向右的箭头图标),系统将会执行你的SQL命令,并在下方的结果区域显示执行结果。如果脚本有错误,错误信息也会在此处展示,帮助你调试修正。

  • 查看执行结果

执行成功的SQL语句会返回查询结果或一个确认信息,比如“受影响的行数”对于INSERT、UPDATE、DELETE操作,或是查询结果集对于SELECT操作。

sql脚本:

接下来我们要解析的是这个sql脚本脚本执行过程如下:

方法1:
Update Table1
set c = (select c from Table2 where a = Table1.a)
where c is null 
方法2:
update  A
set  newqiantity=B.qiantity
from  A,B
where  A.bnum=B.bnum
方法3:
update
(select A.bnum ,A.newqiantity,B.qiantity from A
left join B on A.bnum=B.bnum) AS C
set C.newqiantity = C.qiantity
where C.bnum ='001'

这三个SQL语句都是用于更新表中某些列的值,基于不同的条件和数据来源。下面我将逐一解析这些脚本并简要说明它们的作用及可能的输出结果。

方法1:

Sql

1UPDATE Table1
2SET c = (SELECT c FROM Table2 WHERE a = Table1.a)
3WHERE c IS NULL;

解析:此脚本意在更新Table1c列的值,当且仅当该列值为NULL。更新的值是从Table2中选取的,选取的依据是两表中a列的值相等。换句话说,这个查询会查找所有Table1cNULL的行,并将其c列的值替换为与之相对应的(根据a列匹配)Table2中的c值。

可能的输出结果:

由于UPDATE操作不直接返回结果集,所以执行后不会直接看到输出,但可以理解为执行后,Table1中所有原本cNULL的行,如果能在Table2找到匹配的a值,则其c列会被相应地更新。

方法2:

Sql

1UPDATE A
2SET newqiantity = B.qiantity
3FROM A, B
4WHERE A.bnum = B.bnum;

解析:这个脚本使用了老式的FROM子句连接语法来更新表Anewqiantity列,更新的值取自表Bqiantity列,条件是两个表的bnum列相等。这是一种更新连接表中数据的方法,确保只有那些在AB表中bnum匹配的记录会被更新。

可能的输出结果:

同样,此操作不直接产生可视输出,但执行后,表A中所有与表Bbnum匹配的行,其newqiantity将被设置为对应B表行的qiantity值。

方法3:

Sql

1UPDATE
2(SELECT A.bnum, A.newqiantity, B.qiantity
3 FROM A
4 LEFT JOIN B ON A.bnum = B.bnum) AS C
5SET C.newqiantity = C.qiantity
6WHERE C.bnum = '001';

解析:这是一个更复杂的更新方式,首先通过一个子查询创建了一个名为C的临时结果集,该结果集包含了表A和表B通过bnum左连接后的数据。然后,它只更新这个临时结果集中bnum为'001'的行的newqiantity列,将其设置为对应qiantity的值。注意这里实际上可能不需要更新,因为更新的值和原来的值来自同一源(C.qiantity),除非在实际应用中有未提及的逻辑或后续处理步骤。

可能的输出结果:

执行后,如果存在bnum为'001'的行,理论上这行的newqiantity会被更新为其自身的qiantity值(尽管这种更新看起来多余)。但由于是基于特定条件C.bnum = '001',只有满足这一条件的行才会受到影响,而结果不会直接显示,而是体现在表A的数据变化上。

附:~~~~~

如果想上手操作练代码的同学们可以通过阿里云ecs服务器免费试用参与!

入口:新老同学免费试用

目录
相关文章
|
11天前
|
SQL DataWorks NoSQL
DataWorks产品使用合集之如何将SQL Server中的数据转存到MongoDB
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
241 1
|
1天前
|
SQL 关系型数据库 MySQL
SQL脚本文件
【6月更文挑战第20天】SQL脚本文件。
12 1
|
4天前
|
SQL 存储 数据库
如何在SQL中添加数据:一个初学者指南
如何在SQL中添加数据:一个初学者指南
14 3
|
4天前
|
SQL 弹性计算 API
云服务器 ECS产品使用问题之如何通过API调用阿里云服务器上SQL Server数据库中的数据
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
6天前
|
SQL 安全 Java
Spring Boot中的跨站点脚本攻击(XSS)与SQL注入防护
【6月更文挑战第15天】在现代Web应用程序开发中,安全性是一个至关重要的课题。跨站点脚本攻击(XSS)和SQL注入是最常见的两种攻击类型,它们可以严重威胁到应用程序的安全。
32 0
|
11天前
|
存储 分布式计算 大数据
MaxCompute产品使用合集之在sql里调用自定义的udf时,设置一次同时处理的数据行数,是并行执行还是串行执行的
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
11天前
|
SQL 算法 大数据
深入解析力扣177题:第N高的薪水(SQL子查询与LIMIT详解及模拟面试问答)
深入解析力扣177题:第N高的薪水(SQL子查询与LIMIT详解及模拟面试问答)
|
13天前
|
分布式计算 DataWorks 关系型数据库
MaxCompute产品使用合集之DataWorks是否支持通过SQL方式在MaxCompute中查询数据,并通过数据集成服务将查询结果同步至MySQL数据库
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
14天前
|
SQL 关系型数据库 MySQL
MySQL数据库——SQL优化(3/3)-limit 优化、count 优化、update 优化、SQL优化 小结
MySQL数据库——SQL优化(3/3)-limit 优化、count 优化、update 优化、SQL优化 小结
223 0
|
3天前
|
SQL IDE Java
Java连接SQL Server数据库的详细操作流程
Java连接SQL Server数据库的详细操作流程