SQL语句之delete
delete实战
DELETE FROM 语句
使用 DELETE 语句可以删除 PostgreSQL 表中的数据,可以删除一行也可以同时删除多行。语法:DELETE FROM table_name WHERE condition;
如果没有指定 WHERE 子句,PostgreSQL 表中的所有记录将被删除。通常我们需要在 WHERE 子句中指定条件来删除对应的记录,条件语句可以使用 AND 或 OR 运算符来指定一个或多个。执行删除后输出说明:DELETE count。count 是被删除行的数目。清空表如图1-1所示:
图1-1
删除id=1的行如图1-2所示:
图1-2
批量删除如图1-3所示:
图1-3
返回删除的数据如图1-4所示
图1-4
Truncate
使用TRUNCATE table_name; TRUNCATE可以清空一个表或者一组表,和不带条件DELETE执行效果相同,不过它更快,因为它没有实际扫描表。此外,它会立刻回收磁盘空间, 而不是要求一个后续的VACUUM操作。在大表上 它最有用。如图1-5所示
图1-5
Drop
DROP TABLE table_name;是直接移除表,如图1-6所示:
图1-6
综上所述我们可以知道DELETE、DROP 和 TRUNCATE 都是用于删除表中数据的 SQL 语句,但它们之间存在一些区别:
- DELETE:DELETE 语句用于从表中删除数据,但它不会释放磁盘空间。它只是将表中的数据标记为已删除,而不是真正地从磁盘中删除数据。因此,当表被覆盖时,已删除的数据仍然存在于磁盘上。此外,DELETE 语句可以同时删除多行数据,并且可以指定 WHERE 子句来限制删除的范围。
- DROP:DROP 语句用于删除整个表或数据库。它会从磁盘上永久地删除表或数据库,包括其中的所有数据和结构。因此,使用 DROP 语句需要非常小心,因为它会永久地丢失数据。
- TRUNCATE:TRUNCATE 语句与 DELETE 语句类似,但它只删除表中的数据,而不删除表本身。它会立即回收磁盘空间,而不是要求一个后续的 VACUUM 操作。因此,在处理大表时,TRUNCATE 比 DELETE 更快。此外,TRUNCATE 语句还可以一次性删除多个表中的数据。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。