`
jasonw68
  • 浏览: 152977 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ORACLE 多表关联update

    博客分类:
  • SQL
 
阅读更多

Oracle两表关联执行update时,因为没有像SqlServer的update from,因此要麻烦一些,通常有以下四种方式:

第一种:更新的条件为两个表的查询关联

update customers  a       – 使用别名

set    customer_type=’01′ –01 为vip,00为普通

where  exists (select 1

from   tmp_cust_city b

where  b.customer_id=a.customer_id

)

第二种:更新的条件为两个表的查询关联,值为查询值

update customers a   — 使用别名

set    city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id)

where  exists (select 1

from   tmp_cust_city b

where  b.customer_id=a.customer_id

)

第三种: update 超过2个值

update customers a   — 使用别名

set    (city_name,customer_type)=(select b.city_name,b.customer_type

from   tmp_cust_city b

where  b.customer_id=a.customer_id)

where  exists (select 1

from   tmp_cust_city b

where  b.customer_id=a.customer_id

)

第四种,使用视图方式更新,这样能避免对B表或其索引的2次扫描,但前提是 A(customer_id) b(customer_id)必需是unique index

或primary key。否则报错:

update (select a.city_name,b.city_name as new_name

from   customers a,

tmp_cust_city b

where  b.customer_id=a.customer_id

)

set    city_name=new_name

No related posts.

分享到:
评论

相关推荐

    ORACLE_多表关联_UPDATE_语句

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

    ORACLE多表关联的update语句

    总结,Oracle的多表关联UPDATE语句是一种强大的工具,能够有效处理跨表的数据更新需求,确保数据的一致性和准确性。在实际应用中,应根据业务逻辑和数据关系选择最适合的更新方法,并进行充分的测试以确保其正确性和...

    Oracle两张表关联批量更新其中一张表的数据

    UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXISTS (SELECT 1 FROM 表1 WHERE 表1.A = 表2.A); 尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据的范围。 方法二: ...

    Oracle中多表关联批量插入批量更新与批量删除操作

    在Oracle数据库中,进行多表关联的批量插入、批量更新和批量删除操作是常见的数据库管理任务,尤其是在处理大量数据时,这些操作能显著提高效率并减少资源消耗。本文将详细探讨这三个方面,并通过实例代码来展示如何...

    oracle两表关联更新Demo

    #### 一、Oracle关联更新概述 在Oracle数据库中,进行数据更新操作时,有时需要根据另一个表中的数据来更新当前表的数据,这就是所谓的“关联更新”。关联更新通常用于保持两个或多个表之间的一致性,确保数据的...

    oracle的update的五种方式

    这种方式比标准 Update 语句更灵活,可以关联多个表,并且执行速度快。但是,表 B 的主键必须在 where 条件中,并且是以“=”来关联被更新表,否则将报错。 三、Merge 更新法 Merge 更新法是 Oracle 特有的语句,...

    update语句的优化-oracle .pdf

    当更新操作涉及到多表关联且逻辑较为复杂时,可以使用PL/SQL的游标(cursor)来进行逐行处理。通过for循环遍历游标中的数据,可以在循环体中执行具体的更新操作。例如: ```sql BEGIN FOR cr IN ( SELECT a....

    对Oracle多表关联更新的应用研究.pdf

    Oracle数据库在多表关联更新中的应用研究主要集中在如何高效、准确地处理复杂的数据操作,尤其在涉及多个表之间关系的数据更新场景。在这个案例中,研究背景是一家名为仪刘鑫梓的大型百货连锁销售公司,该公司正在...

    oracle及sqlserver关联两个表update.txt

    oracle及sqlserver关联两个数据表进行update,即通过一个表的数据update另一个数据表字段

    数据库oracle for update of和for update的区别

    - 当涉及到多表联接时,`FOR UPDATE OF`可以更加灵活地控制锁定的列: ```sql SELECT * FROM Table1 a JOIN Table2 b ON a.pkid = b.pkid FOR UPDATE OF a.pkid; ``` 这条语句仅锁定`Table1`中的`pkid`列,`...

    skyline与oracle数据库坐标关联之oracle数据库操作说明

    Skyline与Oracle数据库坐标关联的操作说明包括创建表字段、给表 user_sdo_geom_metadata 添加数据、创建索引和更新数据四个步骤。只有遵循这四个步骤,才能确保坐标数据的正确性和一致性。 Skyline与Oracle数据库...

    如何实现多数据表关联呢?Delphi的方法实例..rar

    3. **关联字段(Foreign Key)**:多表关联的基础是外键,它在一个表中的字段引用另一个表的主键。在Delphi中,可以设置TTable组件的ForeignFieldNames属性来指定关联的字段。 4. **SQL JOIN操作**:在SQL中,JOIN...

    ORACLE_UPDATE_语句语法与性能分析

    2) **两表关联UPDATE**: 在这种形式中,我们使用EXISTS子句与一个临时表(tmp_cust_city)进行关联。这允许我们仅更新那些在临时表中存在的记录。这种方式更安全,因为它不会误更新不匹配的数据。同时,由于我们只...

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

    当需要从多个表中提取信息并更新主表时,多表关联`UPDATE`就显得尤为重要。例如,从临时表`tmp_cust_city`中提取更准确的城市信息并更新到`customers`表中,同时可能还需要更新客户类型: ```sql UPDATE customers a...

    Oracle 11i 表结构

    3. **多对多**:两个表之间存在多对多的关系时,通常会引入第三个表(关联表)来连接它们,该关联表中包含两个表的主键作为其外键。 #### 四、触发器的设置 触发器是一种特殊类型的存储过程,它被定义为当特定事件...

    SQL update 多表关联更新的实现代码

    这里我们将探讨如何使用SQL `UPDATE` 语句来实现多表关联更新,特别关注标题和描述中提到的例子。 首先,我们有两个表:A表和B表,它们都有一个共同的字段 `c1`。A表的记录包括 `(1, a1)`, `(2, a2)`, `(3, a3)`, `...

    Oracle 词汇表

    - 外键(Foreign Key):关联两个表的列,用于实现引用完整性。 - 视图(View):虚拟表,由SQL查询结果组成,可以像操作真实表一样操作视图。 - 存储过程(Stored Procedure):预编译的SQL和PL/SQL代码集合,可...

    j2EE对oracle数据库Dept和Emp进行关联操作

    本话题主要关注如何使用J2EE技术与Oracle数据库进行交互,特别是针对"Dept"和"Emp"这两个表进行增删改查(CRUD)操作。 首先,Oracle数据库是全球广泛使用的数据库管理系统,尤其在企业级应用中,其稳定性和性能...

Global site tag (gtag.js) - Google Analytics