update语句oracle?oracle中update的用法
大家好,关于update语句oracle很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于oracle中update的用法的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
oracle数据库update语句的疑问
你的语句太混乱了,按照你的意思你需要明确几点。
1.使用b表数据更新a表,那么where条件是什么,也就是说,更新a表中哪些数据,用b表中的哪些数据更新,二者的关系是什么。从你的语句中我看不出b表和a表的关联。
2.找到关联条件后,通过关联条件查出的b表数据是否唯一,如果不唯一,还是会出现“返回值多于一行”的错误。
按照你的表结构和数据,假设A表和B表中的name列唯一,以name作为关联,可以这样写来实现你的更新目的:
update A set cou2=(select B_cou1 from B where B.B_name= A.name) where name in(select B_name from B where B.B_name= A.name)
这条语句必须满足name在a、b表中唯一的条件,才能使用。
SQL的update语句怎么写
UPDATE表名称 SET列名称=新值 WHERE列名称=某值,update语句的写法:
1、UPDATE table_name
2、SET column1=value1,column2=value2,...
3、WHERE column(1)=value(1),column(2)=value(2)...and column(n)=value(n);
4、UPDATE Person SET Address='Zhongshan 23', City='Nanjing',WHERE LastName='Wilson'
扩展资料
SQL的update语句写法的特点
1、一体化:SQL集数据定义DDL、数据操纵DML和数据控制DCL于一体,可以完成数据库中的全部工作。
2、使用方式灵活:它具有两种使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主语言中使用。
3、非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。
4、语言简洁,语法简单,好学好用:在ANSI标准中,只包含了94个英文单词,核心功能只用6个动词,语法接近英语口语。
参考资料来源:百度百科—update(数据库SQL语法用语)
ORACLE大数据表Update处理
ORACLE中如果表数据量很大(M级或更大) update某个字段是很慢的(如我的HIS项目中更新历史业务流程表万条记录用CURSOR来更新条MIT一次花了天也没更新完)后来尝试过的改进办法有
把表上的LOGGING取消
把表上的INDEX取消
但是依然很慢无奈下找到这个
在这个主题问答里 ORA官方提了一种处理的办法
利用CREATE table as select xxxxx的办法来生成一新表T
在T上创建与目标表一样的索引
把目标表删除或RENAME(注意备份以备反悔)
把T改名成目标表
试了一下果然非常地快我的任务差不多在 Min就完成了
如csywdk table_room是一张大表要删除其中bakfwid在noNewYWFW中的记录且要更新bakfwid在imp_table_room中记录的ROOM_LOC为imp_table_room room_loc:
()创建新表
create table tmp_new_table_room as
select t ROOM_ID t NEWROOMID t BUILDID t TFH t DKH t BUILD_NO t LAYER_NO t ROOM_NO t ROOM_NAME
decode(t bakfwid null t ROOM_LOC t room_loc)
t ROOM_AREA
t SURTYPE t LAYER_NAME t DEVDEP t CELL t DELFLAG t QXXZ t SJSJLSH t FD t ID t BAKFWID
from csywdk table_room t left join imp_table_room t on t bakfwid=t bakfwid
where not exists(select from noNewYWFW t where t bakfwid=t bakfwid)
()创建备份表
create table Table_room as
select* from csywdk table_room
()替换原表
drop table sde table_room
create table sde table_room as
select* from tmp_new_table_room
在这个问答里还提到一句ORA PL/SQL效率相关的话
能用一句语句处理的任务决不要用多句编程来实现
lishixinzhi/Article/program/Oracle/201311/18980
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!