`

update多列的几种选择

 
阅读更多

update 多列 时有如下几种选择

1.)教科书式写法

update t_table a

    set f1=(select f1 from testz b where a.id=b.id),

           f2=(select f2 from testz b where a.id=b.id),

           f3=(select f3 from testz b where a.id=b.id)

    where id=2;ITPUB个人空间0N2q;M4h-d u+p�?oX'N

2.)教科书变种

update t_table a

    set (f1,f2,f3)=(select f1,f2,f3 from testz b where a.id=b.id)

    where id=2;

虽然道理和方法1一样,却省了不少事

3.)另类nest table写法

update (select f1,f2,f3 from t_table where id=2)

    set (f1,f2,f3)=(select f1,f2,f3 from testz b where id=2);

此方法虽然比2的代码 量要多一些,但是没有表连接,如果两个表都在id列有主键,速度应该较方法1和方法2快一些.

说明:update是一个耗回滚段,耗重做日志,耗时间,耗成本的操作,尤其是大表的多列update,如有必要应比较其与重新建表的效率.

分享到:
评论

相关推荐

    抓图神器2016 with update 3

    下拉列表只列出了几种常见的,若需要从中提取图片的分页的链接末尾不符合其中任何一种正则表达式,用户可自行手动输入。 如果不从二级页面中提取图片,只提取指定网页中的图片,分页正则表达式一栏不填或者选择...

    Mysql跨表更新 多表update sql语句总结

    在Mysql中我们有几种手段可以做到这一点,一种是update table1 t1, table2 ts …的方式: 代码如下: UPDATE product p, productPrice pp SET pp.price = pp.price * 0.8 WHERE p.productId = pp.productId AND p....

    SQL语法大全

    以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。 ------------------------------------------------------------- Recordset属性 adOpenForwardOnly adOpenKeyset ...

    oracle Session与lock 解除

    ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁 3:Row-X 行专用(RX):用于行的修改 4:Share 共享锁(S):阻止其他DML操作 5:S/Row-X 共享行专用(SRX):阻止其他...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    12.1.2 列的选择 337 12.1.3 空值问题 338 12.2 索引结构类型 339 12.2.1 B-树索引 339 12.2.2 位图索引 340 12.2.3 索引组织表 341 12.3 分区索引 343 12.3.1 局部索引 343 12.3.2 全局索引 345 12.3.3 ...

    Java面试宝典2020修订版V1.0.1.doc

    34、Java创建对象有几种方式 22 35、写出验证Email的正则表达式 22 39、说出十种常见的异常 22 40什么是检查性异常和非检查性异常? 23 41、Java的异常处理机制是什么? 23 42、一个静态方法,里面可不可以用this和...

    mysql数据库的基本操作语法

    多列约束:每个约束约束多列数据 MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息; 1、 not null约束 非空约束用于确保当前列的值不为空值,非空约束只能出现在表...

    2009达内SQL学习笔记

    ORDER BY子句中使用的列将是为显示所选择的列,但是实际上并不一定要这样,用非检索的列排序数据是完全合法的。 为了按多个列排序,列名之间用逗号分开。 2、支持按相对列位置进行排序。 输入 SELECT prod_id,...

    经典SQL语句大全

    22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。 select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else ...

    数据库操作语句大全(sql)

    22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。 select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else ...

    sql经典语句一部分

    22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。 select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else ...

    经典全面的SQL语句大全

    这一操作可以通过好几种方式来完成,但是 SELECT 语句只显示一种可能(这里的ID 是自动生成的号码): SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"  注意:以上...

    ORACLE重建索引总结

    1、高基数:简单理解就是表中列的不同值多。 2、低基数:建单理解就是表中的列的不同值少。 3、以删除的叶节点数量:指得是数据行的delete操作从逻辑上删除的索引节点 的数量,要记住oracle在删除数据行后,将 ...

    SQL sever 实训

    --对产品表Product 的Stocks列、Price列、入库表Proln的Quanity列、销售表ProOut 的Quanity --列值进行约束,使其值大于0 ALTER TABLE Product ADD CONSTRAINT CK_Product_Stock CHECK(Stock>0) GO ALTER TABLE ...

    Hibernate_Annotation关联映射

    Hibernate Annotation几种关联映射 一对一(One-To-One) 使用@OneToOne注解建立实体Bean之间的一对一关联。一对一关联有三种情况:(1).关联的实体都共享同样的主键,(2).其中一个实体通过外键关联到另一个实体的主键...

    DevCon 实用工具是一种命令行实用工具,可以替代设备管理器(禁用启用重启网卡的方法)

     DevCon 实用工具是一种命令行实用工具,可以替代设备管理器。使用 DevCon,您可以启用、禁用、重新启动、更新、删除和查询单个设备或一组设备。DevCon 提供与开发人员有关但无法在设备管理器中看到的信息。  您...

    Java面试宝典2010版

    50、多线程有几种实现方法?同步有几种实现方法? 51、启动一个线程是用run()还是start()? . 52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 53、线程的基本概念、线程...

    MYSQL常用命令大全

    3:选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4:查看现在的数据库中存在什么表 mysql> SHOW TABLES; 5:创建一个数据库表 mysql> Create TABLE MYTABLE (name ...

    最新Java面试宝典pdf版

    50、多线程有几种实现方法?同步有几种实现方法? 33 51、启动一个线程是用run()还是start()? . 33 52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 33 53、线程的基本概念...

Global site tag (gtag.js) - Google Analytics