DELETE 文は、次のような単純な形式になっています。
DELETE [ FROM ] table-name WHERE column-name = expression
次のような、より複雑な形式も使用できます。
DELETE [ FROM ] table-name FROM table-list WHERE search-condition
WHERE 句を使用して削除するローを指定します。WHERE 句がないと、DELETE 文によってテーブルのすべてのローが削除されます。
DELETE 文の 2 番目に位置する FROM 句には、テーブルからデータを選択し、最初に指定されたテーブルから一致するデータを削除する、特別な働きがあります。FROM 句で選択したローに、削除の条件を指定します。DELETE 文を参照してください。
この例では、SQL Anywhere のサンプル・データベースを使用します。この文を実行するには、wait_for_commit オプションを On に設定してください。次の文は現在の接続に関してのみ、この操作を実行します。
SET TEMPORARY OPTION wait_for_commit = 'On'; |
これによって、外部キーに参照されるプライマリ・キーが含まれるローでも削除できますが、対応する外部キーも削除しないかぎり、COMMIT は許可されません。
次のビューでは、製品と販売した製品の値を表示します。
CREATE VIEW ProductPopularity as SELECT Products.ID, SUM( Products.UnitPrice * SalesOrderItems.Quantity ) AS "Value Sold" FROM Products JOIN SalesOrderItems ON Products.ID = SalesOrderItems.ProductID GROUP BY Products.ID; |
このビューを使用して、売り上げが 20,000 ドル未満の製品を Products テーブルから削除できます。
DELETE FROM Products FROM Products NATURAL JOIN ProductPopularity WHERE "Value Sold" < 20000; |
次の ROLLBACK 文を入力して、データベースのこれらの変更をキャンセルしてください。
ROLLBACK; |
また、InteractiveSQL の結果セットから、データベース・テーブルのローを削除することもできます。Interactive SQL での結果セットの編集を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |