广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Oracle执行Update语句的几种方式
  • 356
分享到

Oracle执行Update语句的几种方式

2024-04-02 19:04:59 356人浏览 八月长安
摘要

oracle没有update from语法,可以通过四种写法实现同样的功能: 一、标准update语法(常用、速度可能最慢) 当更新的表示单个或者被更新的字段不需

oracle没有update from语法,可以通过四种写法实现同样的功能:

一、标准update语法(常用、速度可能最慢)

当更新的表示单个或者被更新的字段不需要关联表带过来,此法是最好的选择。

update  a 
set a.c2= (select b.c2from  b where a.c1=b.c1)
where exists   (select 1 from   b where a.c1=b.c1)

二、内联视图更新(关联主键字段,速度较快)

inline view更新法就是更新一个临时建立的视图。

方案:更新一个临时建立的视图。要求B表的主键字段必须在where条件中,并且是以=号来关联被更新表。

update (select a.c2 as ac2,b.c2 as bc2 from a, b where a.c1=b.c1 and a.c3='2011') as M 
set ac2=bc2

三、merge更新法 (关联字段非主键时,速度较快)

merge是oracle特有的语句,语法如下:

MERGE INTO table_name alias1 --主表,即需要被修改的表
USING (table | view | sub_query) alias2 --从表,即来源表
ON (join condition) --连接条件
WHEN MATCHED THEN --在匹配的记录中进行
  UPDATE table_name SET col1 = col_val1, col2 = col2_val --更改主表信息
WHEN NOT MATCHED THEN --在不匹配的情况下,筛选从表记录插入到主表【可选】
  INSERT (column_list) VALUES (column_values);

原理分析:在alias2中Select出来的数据,每一条都跟alias1进行 ON (join condition)的比较,如果匹配,就对alias1表进行更新的操作(Update),如果不匹配,就对alias1表进行插入操作(Insert)。

执行merge不会返回影响的行数,最多只能两个表关联。

merge into a
using b 
 on (a.c1=b.c1 and a.c3='2011')
   when matched then
update a.c2=b.c2

四、快速游标更新法(复杂逻辑时,效率很高)

语法:

begin
for cr in (查询语句) loop  --循环
update table_name set ...   --更新语句(根据查询出来的结果集合)
end loop;  --结束循环
end;
begin
    for cur in (select a.rowid  ,b.c2 from  a, b where a.c1=b.c1 and a.c3='2011' )  loop
        UPDATE a  set c2=cur.c2  where rowid=cur.rowid;
    end loop;
end;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Oracle执行Update语句的几种方式

本文链接: https://www.lsjlt.com/news/147965.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle执行Update语句的几种方式
    Oracle没有update from语法,可以通过四种写法实现同样的功能: 一、标准update语法(常用、速度可能最慢) 当更新的表示单个或者被更新的字段不需...
    99+
    2022-11-13
  • oracle执行update语句时卡住怎么办
    这篇文章主要介绍了oracle执行update语句时卡住怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。问题开发的时候debu...
    99+
    2022-10-18
  • 在oracle中跟踪会话执行语句的几种方法分别是什么
    这期内容当中小编将会给大家带来有关在oracle中跟踪会话执行语句的几种方法分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。生成sql trace可以有以下几种方式:参数设置:非常传统的方法。系统...
    99+
    2023-06-06
  • mybatis有时update语句执行无效的解决方案
    目录项目里mybatis有时update语句执行无效解决办法执行update语句后,数据没有被更新,也没有报错问题描述详细情况解决办法项目里mybatis有时update语...
    99+
    2022-11-12
  • MySQL中一条update语句是如何执行的
    目录前言前期准备SQL语句的执行过程Update语句分析redo log(重做日志)binlog(归档日志)‍♀️总结前言 上一篇文章说完MySQL的事务和锁了,这次来详细介...
    99+
    2022-11-13
  • MySQL中一条update语句是怎么执行的
    本篇内容主要讲解“MySQL中一条update语句是怎么执行的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL中一条update语句是怎么执行的”吧!前期准备⭐⭐首先创建一张表,然后插入...
    99+
    2023-06-29
  • js执行shell命令的几种方式(Node)
    目录前言调起shell的几种方式介绍(不限于这几种)1、child_process2、shelljs3、simple-git总结在做一个客户端基建项目的时候,多处需要用到JS调取命令...
    99+
    2022-11-13
  • SQL语句的执行方式有哪些
    SQL语句的执行方式有以下几种:1. 交互式执行:即通过命令行或者可视化工具直接输入SQL语句并执行,结果即时显示。2. 批处理执行...
    99+
    2023-09-23
    SQL
  • MySQL中update语句的执行过程是怎么样的
    这篇文章主要为大家展示了“MySQL中update语句的执行过程是怎么样的”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中update语句的执行过程是...
    99+
    2022-10-19
  • 如何查询Oracle正在执行的sql语句及执行该语句的用户
    这篇文章主要介绍了如何查询Oracle正在执行的sql语句及执行该语句的用户,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。--查询Oracl...
    99+
    2022-10-18
  • mybatis-plus进行update的三种方式
    第一种:主键updateById User user = new User();// 这个id是主键user.setId(4L);user.setPhone("119");//getBaseMapper 是mybatis-plus方法get...
    99+
    2023-09-01
    mybatis 数据库 mysql
  • MySQL运维02-MySQL执行SQL文件的几种方式
    文章目录 方式一:mysql -e方式二:mysql < batch-file方式三:mysql客户端命令行方式总结 方式一:mysql -e mysql -e "source batch-file" 方式二:mysql < b...
    99+
    2023-08-23
    mysql 运维 sql 服务器 数据库
  • navicat执行sql语句的方法
    小编给大家分享一下navicat执行sql语句的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!首先要在navicat的【查询编辑器】中编写可执行的sql语句当我们在【查询编辑器】中编写完S...
    99+
    2022-10-18
  • 浅谈ubuntu执行.sh文件几种方式区别
    前言 不同的script执行方式会造成不一样的结果,尤其对bash的环境影响很大,脚本的执行方式有大概以下几种方式。 首先写一个简单的test.sh文件: #!/bin/bash read -p "Please ...
    99+
    2022-06-04
    ubuntu执行.sh文件 ubuntu执行.sh
  • 【Android】之【延时执行的几种方法】
    在Android日常开发中我们经常会有延时执行某个操作的需求,例如我们启动应用的时候,开始呈现一个引导页面,过了两三秒后,自动跳转到主界面;又如为了控制时序,需要延时执行等等。 下面整理下实现延时执行...
    99+
    2023-08-31
    android
  • Mybatis注解开发@Select执行参数和执行sql语句的方式
    执行传参 @Select 是 Mybatis 框架中的一个注解,用于执行 SQL 查询语句,并把查询结果映射到指定的 Java 对象中。 具体来说,@Select 注解会将注解中的 SQL 查询语句交给 Mybatis 框架进行解...
    99+
    2023-09-17
    mybatis sql java
  • Mybatis执行多条语句/批量更新方式
    目录Mybatis执行多条语句/批量更新Mybatis实现多条语句Mybatis同时执行多条语句解决办法不外乎有三个总结Mybatis执行多条语句/批量更新 Mybatis实现多条语...
    99+
    2023-05-13
    Mybatis执行多条语句 Mybatis批量更新 Mybatis执行语句
  • 讨论Oracle 中sql语句的执行顺序
    查询语句的执行顺序:select ename as name from scott.emp emp where emp.job=' CLERK' order by name;sele...
    99+
    2022-10-18
  • Oracle数据库SQL语句的执行过程
    这篇文章主要讲解了“Oracle数据库SQL语句的执行过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle数据库SQL语句的执行过程”吧!1、用户...
    99+
    2022-10-18
  • Shell脚本中执行sql语句操作mysql的5种方法
    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本。本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考。对于脚本输出的结果美...
    99+
    2022-06-04
    种方法 语句 脚本
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作