删除vs删除
Delete和Drop命令都属于SQL(结构化查询语言)语句,它们用于从数据库中删除数据。Delete是一个DML(数据操作语言)命令。它根据用户指定的条件从表中删除部分或全部数据。Delete语句只删除表中的数据记录,但表结构在数据库中显示相同的记录。Drop命令是一个DDL(数据定义语言)语句,它的作用方式与Delete命令不同。它不是基于条件的语句,因此从表中删除整个数据,还从数据库中永久删除表结构和对该表的所有引用。
删除语句
如上所述,Delete语句根据提供的条件从表中删除数据,Where子句与Delete一起使用来指定这个必需的条件。如果Where子句没有用Delete声明,那么将从表中删除所有表数据。但是,在Delete操作中,现有表结构保持不变。因此,如果用户想再次重用表,则不需要定义表结构。由于Delete是一个DML命令,因此它在执行后不会自动提交。上一个操作可以回滚,这样就可以撤消此操作。否则应调用永久性语句进行更改。在执行Delete语句时,它在事务日志中为每一行删除记录一个条目。所以,这影响了手术的速度。同样,它不会释放执行后使用的空间。
下面是Delete语句的语法。
从<;表格名称中删除>;
或
从<;table_name>;WHERE<;condition>;中删除;
Drop语句
Drop语句不仅无条件地从数据库中删除所有表记录,而且还永久地从数据库中删除相关表的表结构、完整性约束、索引和访问权限。因此,其他表的所有关系也不再存在,有关该表的信息将从数据字典中删除。因此,如果用户想重用该表,他/她需要再次定义表结构和对该表的所有其他引用。Drop是一个DDL命令,在执行该命令之后,它不能再次回滚,因为Drop命令使用自动提交。所以,用户在使用这个命令时应该非常小心。Drop语句不能应用于系统表,也不能用于具有外键约束的表。
Drop命令不仅可以用于SQL表,还可以用于数据库、视图和表列,并且存储在这些对象中的所有数据都会随着对象一起永久丢失。
下面是Drop命令的典型语法。
删除表格<;表格名称>;
删除和删除有什么区别?1Delete和Drop命令从数据库中删除表数据。但是Delete语句执行基于条件的删除,而Drop命令则删除表中的所有记录。此外,Delete语句只删除表中的行,并保留表结构不变,而Drop命令删除表和表结构中的所有数据,还删除数据库中的所有其他引用。Delete是一个DML语句,而Drop是一个DDL命令。所以,Delete操作可以回滚并且不是自动提交的,而Drop操作不能以任何方式回滚,因为它是一个自动提交的语句。Drop命令不能用于已被外键约束引用的表,而Delete命令可以代替它。与SQL应用程序中的Delete语句相比,应该仔细使用Drop命令,并对其有很好的理解。 |