Collection Contents 上一页 下一页 PDF

ASA SQL 用户指南

添加、更改和删除数据

使用 DELETE 删除数据


简单的 DELETE 语句格式如下:

DELETE [ FROM ] table-name 
WHERE column-name = expression

您也可以使用更复杂的格式,如下所示

DELETE [ FROM ] table-name 
FROM table-list 
WHERE search-condition

WHERE 子句 

使用 WHERE 子句指定要删除的行。如果未出现任何 WHERE 子句,则 DELETE 语句将删除表中所有的行。

FROM 子句 

DELETE 语句第二个位置上的 FROM 子句是一个特殊的功能,允许您从一个或多个表中选择数据,然后从指定的第一个表中删除相应的数据。您在 FROM 子句中选择的行指定删除的条件。

示例 

本示例使用示例数据库。为了执行示例中的语句,您应该将选项 WAIT_FOR_COMMIT 设置为 OFF。以下语句只为当前连接执行此操作:

SET TEMPORARY OPTION WAIT_FOR_COMMIT = 'OFF'

这允许您删除某些行,即使这些行包含被外键引用的主键,但是除非也删除相应的外键,否则不允许 COMMIT(提交)。

以下视图显示产品和已售出的产品的价值:

CREATE VIEW ProductPopularity as
SELECT  product.id,
   SUM(product.unit_price * sales_order_items.quantity) as "Value Sold"
FROM  product JOIN sales_order_items
ON product.id = sales_order_items.prod_id
GROUP BY product.id

使用此视图,您可以从 product 表中删除销售额小于 $20,000 的那些产品。

DELETE
FROM product
FROM product NATURAL JOIN ProductPopularity
WHERE "Value Sold" < 20000

完成了该示例后,您应该回退您的更改:

ROLLBACK

从表中删除所有行

Collection Contents 上一页 下一页 PDF