表的DROP和DELETE有什么区别?

时间:2011-12-18 21:59:37

标签: mysql sql database

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

如果我不想在我的数据库中再使用这个表,那么正确的做法是什么? 我应该删除还是删除?

10 个答案:

答案 0 :(得分:8)

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

DROP TABLE tbl_user;

DELETE命令用于删除表中的记录,删除数据库分配的表空间,并返回已删除的行数。

DELETE FROM tbl_user WHERE id = 1;

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

TRUNCATE TABLE tbl_user;

答案 1 :(得分:4)

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

DELETE用于从表中删除行。

答案 2 :(得分:3)

也许您在谈论TRUNCATEDELETE

TRUNCATE TABLE users;

等同于(逻辑上)

DELETE FROM users;

这将删除表users中的所有数据。如果要删除整个表结构,则应编写:

DROP TABLE users;

但是,DELETE是DML命令,而TRUNCATE和DROP是DDL命令。不同的RDBMS还存在一些其他差异。更多信息 - here

另一个有用的链接:Difference between TRUNCATE, DELETE and DROP commands

答案 3 :(得分:2)

drop删除了表格中的内容(但不删除表格中的用户权限)。如果要从架构中完全删除表,这就是您想要的。

delete有选择地(或不)从表中删除行。它不会改变表结构。

答案 4 :(得分:1)

没有 DELETE TABLE 这样的东西。您应该使用 DROP TABLE 删除您的表。

答案 5 :(得分:1)

DROP TABLE语句用于删除表。

  

DROP TABLE table_name

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

  

DELETE FROM table_name WHERE some_column = some_value;

因此,当您想从数据库中删除表格时,您将选择 DROP 命令

答案 6 :(得分:0)

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

DROP TABLE reference

答案 7 :(得分:0)

删除将更新日志,而删除则不会。

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

答案 8 :(得分:0)

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

不使用where where条件

DELETE * FROM empl;

使用where where

DELETE FROM empl WHERE job = 'Manager';

<强>截 - 从表中删除所有行。 - 无法完成回滚。

SQL> TRUNCATE TABLE empl;

下拉 - 从数据库中删除表。 - 行,索引和权限也将被删除。 - 无法完成回滚。

SQL> DROP TABLE empl;

答案 9 :(得分:0)

删除从特定表中删除所有数据并删除整个数据库,并从数据库中删除特定表。 如果您不想再使用数据库中的表,那么您应该删除该表。