Oracle数据库删除两表中相同数据的方法

郜芷伊

郜芷伊

2016-01-29 14:42

Oracle数据库删除两表中相同数据的方法,Oracle数据库删除两表中相同数据的方法

在Oracle数据库中删除两表中相同数据的方法是用到in语句,本文通过实例来讲解删除两表中相同数据的方法。

软件环境:

1、Windows NT4.0+ORACLE 8.0.4。

2、Oracle安装路径为:C:ORANT。

问题提出:

1、在做数据转储业务的时候,如果发生操作错误,有可能出现主表和副表中都有同一种数据,

这样结算的结果就有可能发生错误。

实现方法:

SQL create table a (2 bm char(4), --编码3 mc varchar2(20) --名称4 )5 /

表已建立:

SQL insert into a values('1111','1111');SQL insert into a values('1112','1111');SQL insert into a values('1113','1111');SQL insert into a values('1114','1111');SQL insert into a values('1115','1111');SQL create table b as select * from a where 1=2;

表已建立:

SQL insert into b values('1111','1111');SQL insert into b values('1112','1111');SQL insert into b values('1113','1111');SQL insert into b values('1114','1111');SQL commit;

完全提交:

SQL select * from a;BM  MC---- --------------------1111 11111112 11111113 11111114 11111115 1111SQL select * from b;BM  MC---- --------------------1111 11111112 11111113 11111114 1111

方法一

exists子句:

SQL delete from a where exists (select 'X' from b where a.bm=b.bm and a.mc=b.mc);

删除4个记录。

where条件:如果两个表中都拥有相同字段的主键(primary key),则只需比较两个主键就可以了。

方法二

in子句:

SQL delete from a where (bm,mc) in (select bm,mc from b);删除4个记录.SQL select * from a;BM  MC---- --------------------1115 1111

实际测试结论

在表不是很大时,用in子句速度还可以忍受,而如果记录量很多时(十万条以上),in子句速度很慢。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com)
展开更多 50%)
分享

猜你喜欢

Oracle数据库删除两表中相同数据的方法

电脑网络
Oracle数据库删除两表中相同数据的方法

删除Oracle数据库中重复的没用数据

编程语言 网络编程
删除Oracle数据库中重复的没用数据

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

完全删除Oracle数据库的方法

编程语言 网络编程
完全删除Oracle数据库的方法

Oracle数据库数据导入方法

编程语言 网络编程
Oracle数据库数据导入方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Oracle数据库数据对象分析(中)

编程语言 网络编程
Oracle数据库数据对象分析(中)

更改Oracle数据库表的表空间

编程语言 网络编程
更改Oracle数据库表的表空间

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《节奏大师》攻略之自由模式全部勋章获取方法

《节奏大师》攻略之自由模式全部勋章获取方法

《崩坏学园2》我有特别的新手技巧

《崩坏学园2》我有特别的新手技巧
下拉加载更多内容 ↓