哪一个删除表中的所有数据,哪一个从数据库中删除表?
如果我不想在我的数据库中再使用这个表,那么正确的做法是什么? 我应该删除还是删除?
答案 0 :(得分:8)
DROP命令从数据库中删除表及其结构。
DROP TABLE tbl_user;
DELETE命令用于删除表中的记录,删除数据库分配的表空间,并返回已删除的行数。
DELETE FROM tbl_user WHERE id = 1;
TRUNCATE命令也会删除记录,但不会删除由数据库创建的表空间,也不会返回已删除行的数量。
TRUNCATE TABLE tbl_user;
答案 1 :(得分:4)
答案 2 :(得分:3)
也许您在谈论TRUNCATE
和DELETE
?
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)
答案 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。
答案 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)
删除从特定表中删除所有数据并删除整个数据库,并从数据库中删除特定表。 如果您不想再使用数据库中的表,那么您应该删除该表。