Provided by:
manpages-tr_1.0.5.1-1.1_all 
İ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