DROP和DELETE在表格中有什么区别?

5

哪一个会删除表中的所有数据,哪一个会从数据库中删除表格?

如果我不再想要这个表格在我的数据库中,应该怎么做呢? 我应该删除还是删除该表格?


4
在提问之前,鼓励先做一些搜索。考虑到MySQL有一个相当详尽的参考手册,所以没有必要在这里提问。(还有更有趣的问题,比如DROP+CREATE是否总是优于DELETE?但这在这种情况下不适用。) - user166390
10个回答

13
DROP命令从数据库中删除表及其结构。
DROP TABLE tbl_user;

DELETE命令用于从表中删除记录,它会释放数据库分配的表空间,并返回被删除的行数。

DELETE FROM tbl_user WHERE id = 1;

TRUNCATE命令也可以删除记录,但它不会删除由数据库创建的表空间,也不会返回已删除行数。

TRUNCATE TABLE tbl_user;

7

DROP命令用于删除表格(和数据库)。

DELETE命令用于从表格中删除行。


3
也许你是在谈论 TRUNCATE 和 DELETE ?
TRUNCATE TABLE users;

等价于(逻辑上)

DELETE FROM users;

这将会清除users表中的所有数据。如果你想要删除整个表结构,你应该写:

DROP TABLE users;

但是,DELETE 是 DML 命令,而 TRUNCATE 和 DROP 是 DDL 命令。在不同的 RDBMS 中还有一些其他差异。有关更多信息,请参见这里
另一个有用的链接:TRUNCATE、DELETE 和 DROP 命令之间的区别

2
drop 命令可以删除表格及其内容(但不会删除用户对该表的权限)。如果您想从模式中完全删除表格,这就是您需要的操作。 delete 命令可以有选择地(或者不选择地)从表格中删除行。它不会改变表格的结构。

1

并没有DELETE TABLE这样的语法。您应该使用DROP TABLE来删除表。


1

DROP TABLE语句用于删除表。

DROP TABLE table_name

DELETE语句用于删除表中的数据(记录)。

DELETE FROM table_name WHERE some_column=some_value;

因此,如果您想从数据库中删除表,则应使用DROP命令。


0

DELETE 用于从表中删除一行或多行。DROP TABLE 将从数据库中删除整个表,因此如果您想要删除表格,应该使用 DROP TABLE。

DROP TABLE 参考


0

删除操作会更新日志,而丢弃操作则不会。

删除用于移除行,而丢弃用于移除表和数据库。


0

删除是指从特定表中删除所有数据,而且删除整个数据库并从数据库中删除特定表。 如果您不再需要数据库中的某个表,则应该删除该表。


0

删除 - 从表中删除行 - 可以使用where子句删除特定的行。 - 如果未指定where,则将删除表中的所有行 - 可以进行回滚。

不使用where条件

DELETE * FROM empl;

使用where条件

DELETE FROM empl WHERE job = 'Manager';

截断: - 从表中删除所有行。 - 无法回滚。

SQL> TRUNCATE TABLE empl;

drop - 从数据库中删除一个表。 - 行、索引和权限也将被删除。 - 无法回滚。

SQL> DROP TABLE empl;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接