Provided by: manpages-tr_1.0.5.1-2_all bug

İSİM

       DELETE - bir tablo satırını siler

KULLANIM

       DELETE FROM [ ONLY ] tablo [ WHERE koşul ]

AÇIKLAMA

       DELETE,  belirtilen  tablodan yeri WHERE deyimi ile saptanan satırı siler. WHERE deyiminin
       yokluğunda tablonun tüm satırlarını siler; sonuç, geçerli ama boş bir tablo olur.

       İpucu: TRUNCATE [truncate(7)] bir PostgreSQL oluşumu olarak, bir tablodaki  tüm  satırları
              silmek için daha hızlı bir mekanizma içerir.

       Öntanımlı  olarak,  DELETE  belirtilen  tablodakinden  başka,  tablonun alt tablolarındaki
       satırları  da  silecektir.   Sadece   belirttiğiniz   tablodaki   satırların   silinmesini
       istiyorsanız, cümlede ONLY kullanmalısınız.

       Bir  tablodan  satır  silebilmek  için,  tablo üzerinde DELETE izninizin olması gereğinden
       başka, koşul ile belirtilen değerleri tablodan okuyabilmek için de SELECT  izniniz  olması
       gerekir.

PARAMETRELER

       tablo  Mevcut bir tablonun ismi (şema nitelemeli olabilir).

       koşul  Silinecek  satırları  seçmekte  kullanılacak,  boolean  türünde  değer döndüren bir
              ifade.

ÇIKTI

       Başarılı bir işlemin ardından, DELETE komutu şöyle bir çıktı ile döner:

       DELETE miktar

       Burada miktar silinen satırların sayısıdır. miktar 0  ise  koşul  ile  eşleşen  bir  satır
       bulunamamış demektir (bu bir hata sayılmaz).

EK BİLGİ

       PostgreSQL,  WHERE  deyiminin  koşulu  olarak başka tabloların sütunlarına da başvurmanızı
       mümkün kılar. Örneğin, belli bir yapımcının bütün filmlerini silmek için şöyle  bir  cümle
       yazılabilir:

           DELETE FROM films
             WHERE producer_id = producers.id AND producers.name = 'foo';

       Burada  yapılan  aslında,  films ve producers tabloları arasında katılım oluşturup, koşula
       uyan  films satırlarını  silinmiş  olarak  imlemektir.  Bu  sözdizimi  standart  değildir.
       Standart yol:

         DELETE FROM films
           WHERE producer_id IN (SELECT id FROM producers WHERE name = 'foo');

       şeklinde  yazmaktır.  Yine de, bazı durumlarda ilk sözdizimi alt seçimli ikinci tarza göre
       hem daha kolay yazılmakta hem de işlemin yerine  getirilmesi  daha  hızlı  olabilmektedir.
       Katılımlı  sözdizimine tek itiraz, kullanılan tabloların listesinin açıkça belli olmayışı,
       bu  sebeple  de  biraz  daha  hataya  açık  olması,  ayrıca  kendine   katılımlı   işlemin
       yapılamayışıdır.

ÖRNEKLER

       Müzikâller dışında tüm filmleri silmek için:

           DELETE FROM films WHERE kind <> 'Musical';

       films tablosunu temizlemek için:

           DELETE FROM films;

UYUMLULUK

       Bir  PostgreSQL  oluşumu olarak  WHERE deyiminin koşulunda başka tabloların sütunlarına da
       başvurulabilmesi dışında, bu komut SQL standardına uygundur.

ÇEVİREN

       Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Nisan 2005