oracle 10g update的语法 更名成 Oracle的update语句优化研究
来源:互联网 发布:软件商店下载 编辑:程序博客网 时间:2024/06/10 21:41
一、 update语句的语法与原理
1. 语法
单表:UPDATE表名称 SET列名称 =新值 WHERE列名称 =某值
如:update t_join_situationset join_state='1'whereyear='2011'
更新年度为“2011”的数据的join_state字段为“1”。如果更新的字段加了索引,更新时会重建索引,更新效率会慢。
多表关联,并把一个表的字段值更新到另一个表中的字段去:
update表a set a.字段1 = (select b.字段1 from 表b where a.字段2=b.字段2) where exists(select 1 from 表b where a.字段2=b.字段2)
oracle的更新语句不通MSSQL那么简单易写,就算写出来了,但执行时可能会报
这是由于set哪里的子查询查出了多行数据值,oracle规定一对一更新数据,所以提示出错。要解决这样必须保证查出来的值一一对应。
2. 原理
Update语句的原理是先根据where条件查到数据后,如果set中有子查询,则执行子查询把值查出来赋给更新的字段,执行更新。
如:
update表a set a.字段1 = (select b.字段1 from 表b where a.字段2=b.字段2)
where exists(select 1 from 表b where a.字段2=b.字段2)。
查表a的所有数据,循环每条数据,验证该条数据是否符合exists(select 1 from 表b where a.字段2=b.字段2)条件,
如果是则执行(select b.字段1 from表b where a.字段2=b.字段2)查询,查到对应的值更新a.字段1中。关联表更新时一定要有exists(select 1 from 表b where a.字段2=b.字段2)这样的条件,否则将表a的其他数据的字段1更新为null值。
引用http://chenxy.blog.51cto.com/729966/811672
- oracle 10g update的语法 更名成 Oracle的update语句优化研究
- Oracle的update语句优化研究
- Oracle的update语句优化研究
- Oracle的update语句优化研究
- Oracle的update语句优化研究
- Oracle的update语句优化研究
- Oracle的update语句优化研究
- Oracle的update语句优化研究
- Oracle的update语句研究
- Oracle的update语句优化
- oracle的update语句优化
- Oracle的update语句优化研究 批量更新
- ORACLE UPDATE 语句语法
- oracle中update语句的性能优化
- Oracle中update语句的优化学习
- oracle update 多张表的语法
- oracle 的 update 语句实例
- Oracle的For Update语句
- 最新 跟我学spring3 电子书下载
- Sicily 4873. D’HONDT
- 关于泛型的很好的一篇心得体会,写的很好,留着用
- Linq查询中类型的转化以及序列化XXX对象时检测到循环引用
- 字符编码笔记:ASCII,Unicode和UTF-8
- oracle 10g update的语法 更名成 Oracle的update语句优化研究
- linux查看文件的编码格式的方法
- difference between nor flash and nand flash
- 单片机分类
- 十八年努力,我才能与你一起喝咖啡(转于《读者》)
- ENGLISH SENTENCES 4
- 所谓namespace,是指标识符的各种可见范围
- 投保攻略:买车需要买哪些产品
- DICOM图像格式转换-2