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

PostgreSQL                                                                                             DELETE(7)