一、SQL DELETE 语句
使用DELETE从表中删除目标行。记录每次删除操作。
DELETE FROM table_name
WHERE some_column=some_value;
请注意 SQL DELETE 语句中的 WHERE 子句!WHERE 子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE 子句,所有的记录都将被删除!即您可以在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变。
DELETE FROM table_name;
sql中delete用法
DELETE * FROM table_name;
二、SQL DROP 语句
通过使用 DROP 语句,可以轻松地删除索引、表和数据库。
(1)DROP INDEX 语句
DROP INDEX 语句用于删除表中的索引。
MySQL DROP INDEX 语法:
ALTER TABLE table_name DROP INDEX index_name
(2)DROP TABLE 语句
DROP TABLE 语句用于删除整个表。同时整个表的结构都被删除。
DROP TABLE table_name
(3)DROP DATABASE 语句
DROP DATABASE 语句用于删除整个数据库。
DROP DATABASE database_name
三、SQL TRUNCATE 语句
如果我们仅仅需要删除表内的数据,但并不删除表本身,即表结构及其列、约束、索引等保持不变。可以使用 TRUNCATE TABLE 语句:
TRUNCATE TABLE table_name
四、DELETE 与TRUNCATE 的区别
(1)TRUNCATE TABLE 语句与不带 WHERE 子句的 DELETE 语句作用相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
(2)DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。delete可以返回被删除的记录数,而truncate table返回的是0。
(3)对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不
带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
(4)TRUNCATE TABLE 不能用于参与了索引视图的表。
如果要删除表中的所有数据,建议使用truncate table,尤其是表中有大量的数据。使用truncate table是将表结构重新建一次,速度要比使用delete 快很多,而delete 是一行一行的删除,速度很慢。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。