简单的 DELETE 语句格式如下:
DELETE [ FROM ] table-name
WHERE column-name = expression
您也可以使用更复杂的格式,如下所示
DELETE [ FROM ] table-name
FROM table-list
WHERE search-condition
使用 WHERE 子句指定要删除的行。如果未出现任何 WHERE 子句,则 DELETE 语句将删除表中所有的行。
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
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。