当表中的数据不需要时
则应该删除该数据并释放所占用的空间
删除表中的数据可以使用Delete语句或者Truncate语句
下面分别介绍
一delete语句 ()有条件删除
语法格式delete [from] table_name [where condition];
如删除users表中的userid为的数据delete from users where userid=;
()无条件删除整个表数据
语法格式delete table_name;
如删除user表中的所有数据delete users ;
二Truncate语句
使用Truncate语句是删除表中的所有记录
语法格式 Truncate
table_name; ()删除所有记录不保留记录占用空间
Truncate
table_name [drop storage]; 如删除users表中的所有数据并不保存占用空间 Truncate table users drop storage; 由于默认使用drop storage关键字所以可以省略 drop storage;
()删除所有记录保留记录占用空间
Truncate
table_name [reuse storage]; 如删除users表中的所有数据并保存占用空间 Truncate table users reuse storage;
三两种删除语句的对比
由于delete语句删除记录时候记录是逐条删除的而Truncate 语句删除数据时不产生回退信息所以如果需要删除大量数据的时候使用delete则占用较多的系统资源而如果使用Truncate 则会快的多
下面通过实例说明一下
首先建立user表
create table users
(
userid varchar()
username varchar()
userpass varchar()
);复制代码
接着插入一条数据
insert into users values(GavinDream); 使用复制插入方法插入几万条数据
insert into users(useridusernameuserpass) select * from users;我插入了 条数据使用delete删除花费时间为 seconds然后又插入了二倍的数据但使用truncate花费时间仅仅为 seconds如下图所示
上一篇:在OracleE数据库的字段上建立索引的方法
下一篇:oracle 分页问题解决方案 |