oracle delete 语法

有两个表 temp_3 字段 id3和time 有30多万的数
表 temp_5 字段 id5和time 有50多万的数 结构都相同
现在想删除temp_5里 所有temp_5.id5=temp_3.id3 匹配的数据
sql怎么写

Delete语句

基本语法:delete from 表名 where 条件

注意事项:

1、如果不使用where子句,将表中所有数据全部删除;

delete from test;

2、如果要删除某列的值,delete是不可以做到的;

3、删除整个表 drop table 表名;

4、当使用delete的时候,一定要考虑表之间参照完整性。

扩展资料:

table参数用于指定从其中删除记录的表的名称。

criteria参数为一个表达式,用于指定哪些记录应该被删除的表达式。

可以使用 Execute 方法与一个 DROP 语句从数据库中放弃整个表。不过,若用这种方法删除表,将会失去表的结构。不同的是当使用 DELETE,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-05

Delete语句

基本语法:

delete from 表名 where 条件

注意事项:

1、如果不使用where子句,将表中所有数据全部删除;

delete from test;

2、如果要删除某列的值,delete是不可以做到的;

3、删除整个表 drop table 表名;

4、当使用delete的时候,一定要考虑表之间参照完整性。

扩展资料

truncate命令也是数据删除命令,他是直接把Oracle表数据一次删除的命令,truncate命令是一个DDL命令,不同于delete是DML命令。

truncate命令结构:truncate table 表名;

truncate和delete都能删除表中的数据,他们的区别:

1、TRUNCATE 是 DDL 命令,命令执行完就提交,删除的数据不能恢复; DELETE 命令是 DML 命令,命令执行完需提交后才能生效,删除后的数据可以通过日志文件恢复。

2、如果表中的数据量较大,TRUNCATE的速度比DELETE速度快很多。

3、truncate删除将重新设置表索引的初始大小,而delete不能。

4、delete能够触发表上相关的delete触发器,而truncate则不会触发。

5、delete删除的原理是一次一条从表中删除数据,并将删除操作当做事物记录在数据库的日志当中,以便进行数据回滚。而truncate是一次性进行数据页的删除,因此执行速度快,但是不能回滚。

总结:truncate命令是属于DDL命令,一次性删除表中所有数据,并且数据不能恢复,在实际开发过程当中truncate命令慎用。

本回答被网友采纳
第2个回答  2011-11-21
使用这种方法的速度比使用delete快多了,并且不会形成空间碎片的,请参考:
create table tt as
select * from temp_5
minus
select * from temp_3;
truncate table temp_5 ;
insert into temp_5
select * from tt;
drop table tt;
第3个回答  推荐于2018-03-12
delete from temp_5 a where exists (select 1 from temp_3 b where a.id5=b.id3)
注:temp_5的id5字段和temp_3的id3字段要建索引本回答被提问者和网友采纳
第4个回答  2011-11-23
delete from temp_5 a where exists (select 1 from temp_3 b where a.id5=b.id3)
相似回答