1.语法

DELETE FROM table_name WHERE [condition];
如果没有指定WHERE子句,表中所有的记录将被删除。
一般我们需要在WHERE子句中指定条件来删除对应的记录,条件语句可以使用AND或OR来指定一个或多个。

2.示例

  1. runoobdb=# select * from company;
  2. id | name | age | address | salary
  3. ----+-------+-----+------------------------------------------------------+--------
  4. 2 | Allen | 25 | haha | 1
  5. 4 | Mark | 25 | haha | 1
  6. 6 | Kim | 22 | haha | 1
  7. 7 | James | 24 | haha | 1
  8. 3 | Teddy | 23 | haha | 1
  9. 1 | Paul | 32 | 北京 | 100000
  10. 5 | David | 27 | 北京 | 100000
  11. (7 行记录)
  12. --删除ID2的数据
  13. runoobdb=# DELETE FROM COMPANY WHERE ID = 2;
  14. DELETE 1
  15. runoobdb=# select * from company;
  16. id | name | age | address | salary
  17. ----+-------+-----+------------------------------------------------------+--------
  18. 4 | Mark | 25 | haha | 1
  19. 6 | Kim | 22 | haha | 1
  20. 7 | James | 24 | haha | 1
  21. 3 | Teddy | 23 | haha | 1
  22. 1 | Paul | 32 | 北京 | 100000
  23. 5 | David | 27 | 北京 | 100000
  24. (6 行记录)
  25. --清空整个表
  26. runoobdb=# DELETE FROM COMPANY;
  27. DELETE 6
  28. --查看发现company这个表还在,只是表被清空了
  29. runoobdb=# \d
  30. 关联列表
  31. 架构模式 | 名称 | 类型 | 拥有者
  32. ----------+---------+--------+----------
  33. public | company | 数据表 | postgres
  34. (1 行记录)
  35. runoobdb=# select * from company;
  36. id | name | age | address | salary
  37. ----+------+-----+---------+--------
  38. (0 行记录)