`

update 语句

阅读更多
create table TEST_EMPLOYEES(ID NUMBER,NAME NVARCHAR2(50),SALARY NUMBER);
insert into TEST_EMPLOYEES (ID, NAME, SALARY) values (1, '张三', 8000);
insert into TEST_EMPLOYEES (ID, NAME, SALARY) values (2, '李四', 7000);
insert into TEST_EMPLOYEES (ID, NAME, SALARY) values (3, '王五', 9000);
create table TEST_EMPLOYEES2(ID NUMBER,NAME NVARCHAR2(50),SALARY NUMBER);
insert into TEST_EMPLOYEES2 (ID, NAME, SALARY) values (1, '张三', 8000);
insert into TEST_EMPLOYEES2 (ID, NAME, SALARY) values (2, '李四', 17000);
insert into TEST_EMPLOYEES2 (ID, NAME, SALARY) values (3, '王五', 19000);
update test_employees te
   set salary =
       (select te2.salary
          from test_employees2 te2
         where te.id = te2.id);
update test_employees te
   set (te.name, te.salary) =
       (select te2.name, te2.salary
          from test_employees2 te2
         where te.id = te2.id
           and NVL(te.salary, 0) != nvl(te2.salary, 0))
 where exists (select te2.salary
          from test_employees2 te2
         where te.id = te2.id
           and nvl(te.salary, 0) != te2.salary);

 

注:update 的 where 条件必须要,否则当and NVL(te.salary, 0) = nvl(te2.salary, 0)) 都相等时,返回的结果集为空,update会更新test_employees全表的name,salary为空

 

上边SQL语句的另外一种写法:注,两个表必须要有主键,没有会导致查询出的结果集无主键,会提示 “无法修改与非键值保存表对应的列”

update (select te.salary, te2.salary new_salary
          from test_employees te, test_employees2 te2
         where te.id = te2.id
           and te.salary != te2.salary)
   set salary = new_salary;

 

同时set也可以是多列,如下:

update (select te.salary, te2.salary new_salary, te.name, te2.name new_name
          from test_employees te, test_employees2 te2
         where te.id = te2.id
           and te.salary != te2.salary)
   set salary = new_salary, name = new_name;

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    根据update语句自动生成select语句

    在数据库管理中,UPDATE语句用于修改已存在的数据记录,而SELECT语句则用于查询数据。在某些场景下,我们可能需要从UPDATE语句转换为SELECT语句,以验证更新操作将影响哪些行或者理解更新逻辑。这在调试、数据分析或...

    update语句

    标题中的“update语句”指的是在数据库管理中用于修改现有数据的SQL命令。在数据库操作中,`UPDATE`语句是不可或缺的一部分,它允许我们更改表中的特定行或所有行的数据。下面将详细介绍`UPDATE`语句的工作原理、...

    生成UPDATE语句

    ### 生成UPDATE语句 本篇文章将详细介绍如何根据指定的表结构来生成更新语句(UPDATE SQL),并特别关注基于主键更新的情况。这在Oracle数据库管理与开发中是一项非常实用的技术,尤其对于那些需要频繁更新数据库...

    update语句的优化-oracle .pdf

    在本篇文档中,作者详细总结了在实际项目中针对Oracle数据库的update语句优化的四种方案。以下是对这四种方案的知识点进行详细的阐述: 1. 标准update语法优化: 当面对单表更新或较简单的SQL语句时,可以直接使用...

    ORACLE多表关联的update语句

    在Oracle数据库中,多表关联的UPDATE语句用于更新一个表中的数据,这些数据依赖于另一个或多个表的记录。这种操作在数据整合、错误修正或者数据同步时非常常见。以下我们将详细探讨如何使用不同方式执行多表关联的...

    VB 利用UPDATE语句批量更新数据表中的数据

    在本教程中,我们将专注于“利用UPDATE语句批量更新数据表中的数据”这一主题。UPDATE语句是SQL语言的一个重要部分,用于修改已存在于数据库表中的记录。在VB中,我们可以结合ADO(ActiveX Data Objects)库来执行...

    在Delphi中更新数据库UPDATE语句使用示例..rar

    在Delphi中,数据库操作是开发企业级应用的重要部分,其中UPDATE语句是修改已有数据的关键操作。本文将深入探讨如何在Delphi中利用UPDATE语句来更新数据库中的记录,结合具体的示例代码进行详细解释。 首先,我们...

    update语句的优化-oracle

    在Oracle数据库管理中,UPDATE语句是用于修改现有数据表中的记录。然而,不恰当的UPDATE操作可能会导致性能问题,特别是在处理大量数据时。本文将深入探讨如何优化Oracle数据库中的UPDATE语句,以提高数据库效率。 ...

    insert,update导出sql语句

    在数据库管理中,INSERT和UPDATE语句是两个非常基础且重要的操作。它们分别用于向数据库中插入新的数据和更新已存在的数据。这篇内容将详细解释这两个SQL语句的工作原理、用法以及如何导出这些语句,以供日后使用或...

    update 语句优化update 语句优化update 语句优化

    ### Update语句优化 在数据库操作中,`UPDATE`语句是用于修改现有记录的关键工具之一。对于大型数据库系统来说,优化`UPDATE`语句能够显著提升数据处理速度和效率,减少资源消耗,提高整体性能。本文将通过分析提供...

    oracle执行update语句时卡住问题分析及解决办法

    这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住。由于我的java程序...

    Delphi通过update语句修改数据库内容..rar

    本教程将深入探讨如何在Delphi中使用SQL的UPDATE语句来修改数据库中的内容。 首先,我们需要理解UPDATE语句的基本语法。在SQL中,UPDATE语句用于修改已存在于表中的记录。基本结构如下: ```sql UPDATE 表名 SET ...

    MySQL数据库中group by语句与update语句的用法研究.pdf

    MySQL 数据库中 group by 语句与 update 语句的用法研究 本论文对 MySQL 数据库中的 group by 语句和 update 语句进行了深入研究,讨论了这些语句在数据库查询和修改中的应用,并给出了具体的解决方案。 一、MySQL...

    SQL Server UPDATE语句的用法详解

    SQL Server UPDATE语句用于更新数据,下面就为您详细介绍SQL Server UPDATE语句语法方面的知识,希望可以让您对SQL Server UPDATE语句有更多的了解。 现实应用中数据库中的数据改动是免不了的。通常,几乎所有的用户...

    sql的update语句功能非常强大[参考].pdf

    "SQL UPDATE 语句功能详解" SQL UPDATE 语句是数据库管理系统中一种基本的数据操作语句,用于更新数据库表中的数据。 UPDATE 语句可以更新单个表或视图中的数据,也可以更新多个表或视图中的数据。 UPDATE 语句的...

    mysql update语句的用法详解.doc

    MySQL UPDATE语句的用法详解 MySQL UPDATE语句是用于更新数据库表中已有的记录的语句。该语句可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE...

    ORACLE_多表关联_UPDATE_语句

    Oracle数据库中的多表关联UPDATE语句是用于在一个表中更新数据时,依据另一个表的条件进行操作的关键技术。这在处理复杂的数据同步或修正场景时非常有用。在本例中,我们将探讨如何利用多表关联来更新数据,并通过...

    第十二节 POST update语句注入-01

    "POST update语句注入" 在数据库安全领域中,SQL 注入是一种常见的攻击方式,而在 Web 应用程序中,POST 请求也可能存在 SQL 注入漏洞。今天我们将讨论 POST update 语句注入的相关知识点。 MySQL update 介绍 ...

    ORACLE UPDATE 语句语法与性能分析看法

    ### ORACLE UPDATE 语句语法与性能分析 #### 引言 在数据库管理与操作中,`UPDATE`语句是SQL语言中极为重要的组成部分,它允许我们修改已存在的记录,从而保持数据的时效性和准确性。Oracle数据库作为企业级应用中...

    sql的update语句功能非常强大.docx

    SQL的UPDATE语句是用于修改现有数据表中记录的关键操作。在SQL中,UPDATE语句的功能非常强大,能够对指定的表、视图或者行集函数中的数据进行修改。下面将详细解析UPDATE语句的结构和参数,以及如何使用它来执行各种...

Global site tag (gtag.js) - Google Analytics