网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  Oracle数据库删除两表中相同数据的方法     
  文章作者:未知  文章来源:未知  
  查看:204次  录入:管理员--2007-06-10  
 

在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 1111
1112 1111
1113 1111
1114 1111
1115 1111

SQL> select * from b;

BM  MC
---- --------------------
1111 1111
1112 1111
1113 1111
1114 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子句速度很慢。

 
 
上一篇: Oracle数据库如何查询记录时给记录加锁    下一篇: 利用Oracle的管理服务器将数据导入导出
  相关文档
数据库应用系统的开发具体分为哪几个阶段 (1) 03-04
将部分数据导出后导入一个统一的数据库中 03-03
新建Oracle数据库回滚段具体操作过程 04-11
深入讲解如何使用rollup配合group by命令 04-09
版本在9.2.0.3以下时autotrace的设置方法 02-28
借助两个开发包在pl/sql中实现多进程通信 06-20
oracle数据库中的表连接方式及使用场合 04-07
如何在oracle中重编译所有无效的存储过程 03-04
oracle用户密码含有特殊字符应当如何处理 (1) 04-03
如何恢复只有完好数据文件的Oracle数据 05-27
怎样才能提高oracle 10g增量备份速度 04-09
理解和使用Oracle分析工具-LogMiner 06-10
怎样使用errorstack进行错误跟踪及诊断 11-15
解析:学习oracle架构应当掌握哪些知识 (1) 11-20
Oracle中用LogMiner分析重做及归档日志 04-11
用最简单的方法记录oracle语句的执行时间 03-24
Oracle数据库中利用ASSM改善分段存储 04-12
Oracle是波音747还是MySQL丰田汽车呢? 06-03
不通过"lower"等函数查询大小写的内容 02-25
oracle10g r2 emca常用命令及实例步骤 07-25
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息