]説明DELETEは、指定したテーブルからWHERE句を満たす行を削除します。WHERE句がない場合、指定したテーブルの全ての行を削除することになります。この結果、そのテーブルは存在するが中身が空のテーブルになります。ヒントTRUNCATEは、より高速に、テーブルから全ての行を削除する仕組みを提供します。データベース内のほかのテーブルに含まれる情報を用いてテーブル内の行を削除する方法には、副問い合わせとUSING句で追加テーブルを指定する方法の2つがあります。どちらの技法が適切かはその状況によります。RETURNING句を指定すると、DELETEは実際に削除された各行に基づいて計算された値を返すようになります。そのテーブルの列、USINGで指定された他のテーブルの列、あるいは、その両方を使用した式を計算することができます。RETURNINGリストの構文はSELECTの出力リストと同一です。削除を実行するには、そのテーブルのDELETE権限が必要です。USING句内のテーブルに対するSELECT権限、および、conditionで使用する値を読み取るために、その値が含まれるテーブルに対するSELECT権限も必要です。パラメータwith_queryWITH句によりDELETE問い合わせ内で名前で参照可能な1つ以上の副問い合わせを指定することができます。詳しくは7.8とSELECTを参照してください。table_name行を削除するテーブルの名前です(スキーマ修飾名も可)。テーブル名の前にONLYが指定された場合、そのテーブルでのみマッチする行が削除されます。ONLYが指定されていない場合、そのテーブルおよび(もしあれば)そのテーブルを継承する全てのテーブルから一致する行が削除されます。オプションで、テーブル名の後に*を指定することで、明示的に継承するテーブルも含まれることを示すことができます。alias対象テーブルの別名です。別名が与えられた場合、実際のテーブル名は完全に隠蔽されます。fとあるとき、このDELETE文の残りの部分ではこのテーブルをfooではなくfとして参照しなければなりません。from_itemWHERE条件内に他のテーブルの列を記述できるようにするための、テーブル式です。これは、SELECT文のFROM句と同じ文法を使います。テーブル名の別名が指定できます。自己結合を行う場合を除き、from_itemに対象のテーブルを繰り返してはいけません(自己結合を行う場合は、from_item内で対象のテーブルとその別名を指定しておく必要があります)。conditionboolean型の値を返す式です。この式がtrueを返す行のみが削除されます。OF条件で使用されるカーソルの名前です。削除対象の行は、そのカーソルからもっとも最近に取り出される行です。カーソルは、DELETEの対象テーブルに対するグループ化のない問い合わせでなければなりません。OFを論理条件といっしょに指定することはできません。OF付きのカーソルの使用に関する情報についてはDECLAREを参照してください。output_expression各行を削除した後にDELETEによって計算され、返される式です。この式には、table_nameで指名したテーブルまたはUSINGで指定したテーブルの任意の列名を使用することができます。すべての列を返す場合は*と記載してください。output_name返される列で使用される名前です。正常に終了した場合、DELETEコマンドは以下の形式のコマンドタグを返します。countcountは削除した行数です。DELETEトリガによって削除が抑止された場合、conditionに合致した行より少なくなる可能性があることに注意してください。(これはエラーとはみなされません)。DELETEコマンドがRETURNING句を持つ場合、その結果は、RETURNINGリストで定義した列と値を持ち、そのコマンドで削除された行全体に対して計算を行うSELECT文の結果と似たものになるでしょう。注釈PostgreSQLでは、USING句で他のテーブルを指定することで、WHERE条件内で他のテーブルを参照することができます。指定したプロデューサが製作した全ての映画を削除する時は、次のようなコマンドを実行します。'foo';ここでは、filmsとproducersとを結合して、films行に削除用の印を付けるという作業を行っています。この構文は標準に従ったものではありません。標準的な方法は以下の通りです。'foo');副問い合わせ形式より結合形式の方が書き易い、あるいは、実行が速くなることがあります。例ミュージカル以外の全ての映画を削除します。'Musical';filmsテーブルを空にします。films;完了した作業(statusがDONE)を削除し、削除された行のすべての詳細を返します。*;tasksにおいてc_tasksカーソルが現在位置している行を削除します。c_tasks;互換性このコマンドは標準SQLに準拠しています。USING句とRETURNING句はPostgreSQLの拡張です。DELETEでWITHが使用可能であることも同様に拡張です。