通过表关联更新表

需求描述

需求:更新emp表里的sal字段的值为temp表里的sal乘以1.5,这些员工号同时出现在在temp表中.

解决方法:这里通过UPDATE TableName SET ColName=..FROM TABLENAME1 A JOIN TABLENAME2 B … WHERE …的方式来更新数据.

注: 数据库数据集SQL脚本详见如下链接地址

员工表结构和数据初始化SQL脚本

SQL代码

-- Sql server:
TUNCATE TABLE temp;
INSERT INTO temp(deptno,deptname,loc,empno,ename,sal)
SELECT 50,'Production','Nanjing',7369,'SMITH',1000BEGIN TRAN
SELECT empno,ename,sal FROM emp WHERE empno=7369;
UPDATE A
SET A.sal= B.sal*1.5
FROM emp A
JOIN temp B
ON A.empno = B.empnoSELECT empno,ename,sal FROM emp WHERE empno=7369;ROLLBACK TRAN

执行结果

延展阅读

-- 注:这里的join方式也可以写成如下的形式:
UPDATE A
SET A.sal= B.sal*1.5
FROM emp A,temp B
WHERE A.empno = B.empno-- Mysql:
TRUNCATE TABLE temp;
INSERT INTO temp(deptno,deptname,loc,empno,ename,sal)
SELECT 50,'Production','Nanjing',7369,'SMITH',1000UPDATE emp A
INNER JOIN fridge.temp B
ON A.empno = B.empno
SET A.sal= B.sal*1.5-- 或者:
UPDATE emp,temp
SET emp.sal=temp.sal*1.5
WHERE emp.empno=temp.empno;-- Oracle:
TRUNCATE TABLE temp;
INSERT INTO temp(deptno,deptname,loc,empno,ename,sal)
SELECT 50,'Production','Nanjing',7369,'SMITH',1000 FROM DUAL;update emp a
set sal=(select b.sal*1.5 from temp b where b.empno=a.empno)
where exists (select 1
from temp b
where b.empno=a.empno
)SELECT empno,ename,sal FROM emp WHERE empno=7369;
-- 结果跟上述相同.

表的插入、更新、删除、合并操作_12_通过表关联更新表相关推荐

  1. 顺序表的插入和删除操作

    C语言线性表的插入和删除操作 C语言数据结构的学习之线性表的插入与删除操作 C语言线性表的插入和删除操作 一.插入操作 插入操作的时间复杂度分析: 二.删除操作 删除操作的时间复杂度分析: 查找操作 ...

  2. pg批量插入_PostgreSQL实现批量插入、更新与合并操作的方法

    前言 就在 2019 年 1 月份微软收购了 PostgreSQL 数据库的初创公司 CitusData, 在云数据库方面可以增强与 AWS 的竟争.AWS 的 RDS 两大开源数据库就是 MySQL ...

  3. PostgreSQL实现批量插入、更新与合并操作的方法_PostgreSQL_脚本之家

    前言 就在 2019 年 1 月份微软收购了 PostgreSQL 数据库的初创公司 CitusData, 在云数据库方面可以增强与 AWS 的竟争.AWS 的 RDS 两大开源数据库就是 MySQL ...

  4. 顺序表的插入与删除java_C++实现顺序表的常用操作(插入删出查找输出)

    实现顺序表的插入,删除,查找,输出操作在C语言中经常用到.下面小编给大家整理实现代码,一起看下吧 代码如下所示: #include using namespace std; #define MAXSI ...

  5. 2 顺序表的插入,删除,查找操作(详细)

    一 顺序表的结构体定义和函数声明 #include<iostream> using namespace std; #define ElemType int  // 自定义 #define ...

  6. c语言编程文件中删除数据结构,C语言数据结构实战(一)顺序表的插入与删除

    今天学习了思成老师的数据结构实战教程 写了一个顺序表 插入和删除的操作 把源码共享给大家 一共包括list.c stu.h main.c list.h   .h文件是头文件 需要引入 具体的功能我都已 ...

  7. java中线性表删除元素和删除指定元素_线性表的插入和删除(Java版)

    1.线性表的定义: (1).线性表是一种可以在任意位置插入和删除数据元素操作.由n(n≥0)个相同类型数据元素a0, a1,-, an-1组成的线性结构.除了第一个元素没有前驱元素和最后一个元素没有后 ...

  8. 折半查找和线性表的插入与删除实验

    学号                     姓名                   博客名 2103101018         罗玛                   桃花岛-戌时 题目:折半 ...

  9. mysql 修改表卡死_MySQL表不能修改、删除等操作,卡死、锁死情况的处理办法。...

    MySQL如果频繁的修改一个表的数据,那么这么表会被锁死.造成假死现象. 比如用Navicat等连接工具操作,Navicat会直接未响应,只能强制关闭软件,但是重启后依然无效. 解决办法: 首先执行: ...

  10. 递增有序顺序表的插入 (20分) 实验目的:1、掌握线性表的基本知识 2、深入理解、掌握并灵活运用线性表。3、熟练掌握线性表的存储结构及主要运算的实现 已知顺序表L递增有序,将X插入到线性表的适当位置

    递增有序顺序表的插入 (20分) 实验目的:1.掌握线性表的基本知识 2.深入理解.掌握并灵活运用线性表.3.熟练掌握线性表的存储结构及主要运算的实现 已知顺序表L递增有序,将X插入到线性表的适当位置 ...

最新文章

  1. 清华学霸震撼演讲:拼尽所有力气,只为给梦想一个机会!
  2. RxAndroid之操作数据库SqlBrite(RXAndroid实现数据库的增、删、改、查)
  3. 数据输出:如何将数据带给页面||SpringMVC除过在方法上传入原生的request和session外还能怎么样把数据带给页面
  4. jvm性能调优 - 13JVM的年轻代垃圾回收器ParNew原理
  5. 【Python】青少年蓝桥杯_每日一题_10.19_回文数和个数
  6. 新疆大学ACM新生赛(公开赛)
  7. matlab中计算不等式的解,matlab解不等式
  8. 平常代码练习报错问题解决
  9. xcode Cornerstone 拷贝项目 提示框架头文件找不到的问题
  10. 【回文串4 DFS】LeetCode 131. Palindrome Partitioning
  11. php if k 1,PHP实现大数字格式化成K/M/B结尾的简短形式
  12. 卓有成效的管理者(笔记)——如何发挥人的长处
  13. linux jconsole 监控jvm,JVM监测分析JConsole
  14. 音视频传输协议之 RTMP
  15. 怎样修复计算机系统软件,重装系统后软件如何恢复呢?
  16. 微信发红包api php,php版微信公众号接口实现发红包的方法
  17. 2021芒部中学高考成绩查询,2021年镇雄县高考状元名单资料,今年镇雄县高考状元多少分...
  18. Oracle数据库原理
  19. MySQL数据库题库
  20. 【问题解决】Cause: java.io.IOException: Could not find resource com/kuang/dao/UserMapper.xml

热门文章

  1. OpenCASCADE绘制测试线束:拓扑命令之复杂拓扑
  2. OpenCASCADE:Foundation Classes使用句柄编程
  3. wxWidgets:wxAUI 概述
  4. boost::remove_copy相关的测试程序
  5. boost::mpl模块实现find_if相关的测试程序
  6. Boost:排序的bimap双图的测试程序
  7. ITK:从图像区域中随机选择像素
  8. DCMTK:OFStandard类中的double / ascii转换方法的测试代码
  9. VTK:可视化算法之ColoredAnnotatedCube
  10. VTK:Utilities之DiscretizableColorTransferFunction