Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - 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 文の 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 での結果セットの編集を参照してください。


テーブルから全ローを削除