数据库表的删除方式有drop、delete和truncate各有什么特点?
删除数据的速度: drop> truncate > delete
drop、delete和truncate的比较:
一、Delete :删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行)。
删除某一行:Delete from 数据表名称 where 列名称=值;
删除所有行:Delete * from 数据表名称
二、Drop :删除数据表或数据库,或删除数据表字段。
删除数据库:drop database 数据库名称
删除数据表:(表的结构、属性、索引也会被删除)
use 数据库名称
drop table 数据表1名称,数据表2名称
删除数据表字段(列):
use 数据库名称
alter table 数据表名称
drop column 字段名(列名称)
三、Truncate:删除数据表中的数据(仅数据表中的数据,不删除表)。 truncate table 数据表名称“ TRUNCATE TABLE语句是一种快速、无日志记录的方法。TRUNCATE TABLE语句与不含有 WHERE 子句的 DELETE 语句在功能上相同。但是,TRUNCATE TABLE语句速度更快,并且使用更少的系统资源和事务日志资源。”
delete from 表名:删除所有记录,表结构还在,写日志,可以恢复的,速度慢。
drop talbe 表名:删除表的结构和数据。
truncate talbe 表名:删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。
出没场合:drop table tb --tb表示数据表的名字。绝招:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表,例如:一个班就是一个表,学生就是表中的数据,学生的职务就是定义,drop table class,就是把整个班移除.学生和职务都消失。