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

ISIM

       DELETE - bir tablo satirini siler

KULLANIM

       DELETE FROM [ ONLY ] tablo [ WHERE ko,sul ]

A,CIKLAMA

       DELETE,  belirtilen  tablodan  yeri  WHERE  deyimi  ile saptanan satiri
       siler. WHERE  deyiminin  yoklugunda  tablonun  tum  satirlarini  siler;
       sonuc, gecerli ama bos bir tablo olur.

       Ipucu: TRUNCATE   [truncate(7)]  bir  PostgreSQL  olusumu  olarak,  bir
              tablodaki tum satirlari silmek icin  daha  hizli  bir  mekanizma
              icerir.

       Ontanimli  olarak,  DELETE belirtilen tablodakinden baska, tablonun alt
       tablolarindaki satirlari da silecektir. Sadece belirttiginiz  tablodaki
       satirlarin silinmesini istiyorsaniz, cumlede ONLY kullanmalisiniz.

       Bir  tablodan  satir  silebilmek  icin, tablo uzerinde DELETE izninizin
       olmasi  gereginden  baska,  ko,sul  ile  belirtilen  degerleri  tablodan
       okuyabilmek icin de SELECT izniniz olmasi gerekir.

PARAMETRELER

       tablo  Mevcut bir tablonun ismi (sema nitelemeli olabilir).

       ko,sul  Silinecek satirlari secmekte kullanilacak, boolean turunde deger
              donduren bir ifade.

,CIKTI

       Basarili bir islemin ardindan, DELETE komutu soyle bir cikti ile doner:

       DELETE miktar

       Burada miktar silinen satirlarin sayisidir.  miktar  0  ise  ko,sul  ile
       eslesen bir satir bulunamamis demektir (bu bir hata sayilmaz).

EK BILGI

       PostgreSQL,  WHERE deyiminin kosulu olarak baska tablolarin sutunlarina
       da basvurmanizi mumkun  kilar.  Ornegin,  belli  bir  yapimcinin  butun
       filmlerini silmek icin soyle bir cumle yazilabilir:

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

       Burada  yapilan  aslinda, films ve producers tablolari arasinda katilim
       olusturup, kosula uyan  films satirlarini silinmis  olarak  imlemektir.
       Bu sozdizimi standart degildir. Standart yol:

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

       seklinde  yazmaktir. Yine de, bazi durumlarda ilk sozdizimi alt secimli
       ikinci tarza gore hem daha  kolay  yazilmakta  hem  de  islemin  yerine
       getirilmesi   daha  hizli  olabilmektedir.  Katilimli  sozdizimine  tek
       itiraz, kullanilan tablolarin  listesinin  acikca  belli  olmayisi,  bu
       sebeple  de  biraz  daha  hataya  acik olmasi, ayrica kendine katilimli
       islemin yapilamayisidir.

"ORNEKLER

       Muzikaller disinda tum filmleri silmek icin:

           DELETE FROM films WHERE kind <> 'Musical';

       films tablosunu temizlemek icin:

           DELETE FROM films;

UYUMLULUK

       Bir  PostgreSQL  olusumu  olarak   WHERE  deyiminin   kosulunda   baska
       tablolarin  sutunlarina  da  basvurulabilmesi  disinda,  bu  komut  SQL
       standardina uygundur.

,CEVIREN

       Nilgun Belma Buguner <nilgun (at) belgeler.gen.tr>, Nisan 2005