SQL语法
SQL 可以用drop、truncate、delete删除表数据,语法如下。
- drop table 表名,如:drop table userInfo
- truncate table 表名,如:truncate table userInfo
- delete from 表名 where 列名=值,如:delete from userInfo where userName=‘小明’
drop(删除表)
- 删除表的内容和定义,以后要新增数据需要新建表。
- drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。
- 数据库定义语言,操作即生效,不能回滚,操作不触发 trigger。
- 执行速度快。
drop table if exists 'userInfo;
create table 'userInfo' (
'name' varchar(255) NOT NULL,
'sex' int(1),
'telephone' varchar(11),
primary key('name')
);
truncate(清除表)
- 删除内容、释放空间,但保留表的数据结构以及定义。
- 新行标识所用的计数值重置为该列的种子。
- 对于由foreign key约束引用的表,不能使用truncate table ,用delete。
- 数据库定义语言,操作即生效,不能回滚,操作不触发 trigger。
- 执行速度比drop慢。
delete(删除行)
- 执行删除的过程中,每次删除一行,并且同时将该行的删除操作作为事务记录在日志中保存,以便进行进行回滚操作。
- 只删除数据,而不删除表的结构。
- 放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。
- 执行速度最慢。