delete刪除表的數(shù)據(jù),可以指定條件刪除,如果事務(wù)未提交,則可以回滾;
truncate刪除表的全部數(shù)據(jù),只保留表結(jié)構(gòu),事務(wù)自動提交,數(shù)據(jù)不可以回滾。
實例:
1. 新建一個表
create table t_user( f_username varchar(225), f_age number(3));2. 插入數(shù)據(jù)
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刪除數(shù)據(jù),可以指定條件。 如果事務(wù)未提交(commit),則可以通過rollback回滾; 如果事務(wù)已提交(commit),則事務(wù)不能回滾;*/delete from t_user where f_username like '%one%';-- 查詢時看不到f_username為one的這條數(shù)據(jù)select * from t_user;-- 事務(wù)未提交,回滾(rollback)rollback;-- 再次查詢時,可以看到one這條數(shù)據(jù)已經(jīng)恢復(fù)select * from t_user;-- 如果刪除(delete)并且提交事務(wù)(commit),將不能回滾delete from t_user where f_username like '%one%';commit;--事務(wù)提交rollback;-- 回滾不到one這條數(shù)據(jù)select * from t_user;-- 查詢時看不到one這條數(shù)據(jù),數(shù)據(jù)已被刪除4. truncate刪除
/* truncate刪除數(shù)據(jù),刪除的是整個表的記錄,事務(wù)不能回滾*/-- 刪除數(shù)據(jù)truncate table t_user; -- 執(zhí)行回滾命令,不能回滾數(shù)據(jù)rollback;-- 查詢時可以看到數(shù)據(jù)已經(jīng)刪除,數(shù)據(jù)沒有通過回滾命令恢復(fù)select * from t_user;
新聞熱點
疑難解答