oracle之delete和truncate命令用法和区别

来源:互联网 发布:天津航空机电知乎 编辑:程序博客网 时间:2024/05/20 07:18

delete删除表的数据,可以指定条件删除,如果事务未提交,则可以回滚;

truncate删除表的全部数据,只保留表结构,事务自动提交,数据不可以回滚。

实例:

1. 新建一个表

create table t_user(       f_username varchar(225),       f_age number(3));

2. 插入数据

insert into t_user values('one','22');insert into t_user values('two','23');insert into t_user values('three','24');insert into t_user values('four','25');commit;

3. delete指定条件删除

/* delete删除数据,可以指定条件。 如果事务未提交(commit),则可以通过rollback回滚; 如果事务已提交(commit),则事务不能回滚;*/delete from t_user where f_username like '%one%';-- 查询时看不到f_username为one的这条数据select * from t_user;-- 事务未提交,回滚(rollback)rollback;-- 再次查询时,可以看到one这条数据已经恢复select * from t_user;-- 如果删除(delete)并且提交事务(commit),将不能回滚delete from t_user where f_username like '%one%';commit;--事务提交rollback;-- 回滚不到one这条数据select * from t_user;-- 查询时看不到one这条数据,数据已被删除

4. truncate删除

/*  truncate删除数据,删除的是整个表的记录,事务不能回滚*/-- 删除数据truncate table t_user; -- 执行回滚命令,不能回滚数据rollback;-- 查询时可以看到数据已经删除,数据没有通过回滚命令恢复select * from t_user;

0 0