通过表关联更新表

需求描述

需求:更新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. android gravity和layout_gravity区别
  2. 大数据实验报告总结体会_大数据挖掘流程及方法总结
  3. 自定义Sharepoint的登陆页面(2)
  4. 超经典动态规划题:最大子序和
  5. java i=(int)b_定义类B和类C如下,并将其保存为B.java文件,得到的结果是()class B{int b;B(int i){b=i;}}class C extend...
  6. Ubuntu下无法使用Secure_CRT连接服务器
  7. SAP Commerce里Extension, Addon和Accelerator这三个名词的联系和区别
  8. flume监听服务器文件,flume监听服务器端口数据库
  9. 利用Oracle内置分析函数进行高效统计汇总
  10. testng依赖_TestNG依赖关系–DependOnMethods,dependsOnGroups
  11. Redis 6.0 源码阅读笔记(5) -- List 数据类型源码分析
  12. python基础之psutil模块和发邮件(smtplib和yagmail)
  13. linux安装mysql 5.7_linux安装mysql5.7.24
  14. linux 内核编程
  15. codevs 1138
  16. Maven项目右边依赖好多红色波浪线处理办法
  17. 程序猿进化 - 在拉钩子1024对APE节讲座计划
  18. 谁是全球芯片行业的“麒麟才子”?得之可得天下!
  19. 微信小程序测试点汇总
  20. Trucksim(一):Trucksim动力学模型搭建

热门文章

  1. VTK:vtkCamera用法实战
  2. OpenCASCADE绘制测试线束:布尔运算命令之两个操作数的布尔运算
  3. boost::multiprecision模块tommath相关的测试程序
  4. boost::mp11::mp_map_erase相关用法的测试程序
  5. boost::math::policies用法的测试程序
  6. boost::parallel::distributed_property_map用法的测试程序
  7. boost::endian模块实现算术缓冲区的测试程序
  8. boost::container模块实现虚拟测试分配器的程序
  9. Boost::context模块fiber的分段的测试程序
  10. ITK:演示可用的阈值算法