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

İSİM

       DELETE - bir tablo satırını siler

KULLANIM

       DELETE FROM [ ONLY ] tablo [ WHERE koul ]

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,  koul  ile  belirtilen  değerleri  tablodan
       okuyabilmek için de SELECT izniniz olması gerekir.

PARAMETRELER

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

       koul  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 koul 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