PostgreSQL Seçilen tablodan satırları sil

⚡ Akıllı Özet

PostgreSQL DELETE komutu bir tablodan bir veya daha fazla satırı siler ve WHERE yan tümcesiyle birlikte kullanıldığında yalnızca bir koşula uyan kayıtları hedeflerken, WHERE ifadesi kullanılmadığında tablodaki tüm satırlar silinir.

  • ???? Sözdizimi: DELETE FROM table WHERE koşulu, eşleşen satırları siler ve RETURNING ise silinen verileri ekrana yazdırır.
  • 🎯 Tek Şart: Tek bir WHERE koşulu, yalnızca bir testi sağlayan satırları siler.
  • İki Şart: İki testi AND operatörüyle birleştirmek, silme işlemini belirli satırlarla sınırlandırır.
  • 🔗 EXISTS Maddesi: EXISTS komutu, bir tablodaki eşleşen kayıtları başka bir tablodaki kayıtlarla karşılaştırarak siler.
  • 🖥️ pgAdmin: Aynı silme sorguları, pgAdmin sorgu düzenleyicisi aracılığıyla görsel olarak da çalıştırılabilir.
  • 🤖 Yapay Zeka Güvenliği: Yapay zekâ asistanları, tam tablo silme işlemlerinden önce doğru WHERE koşulunu ekler ve uyarı verir.

PostgreSQL Seçilen tablodan satırları sil

Sorguyu Sil PostgreSQL

MKS SİL bildirimi in PostgreSQL Bir tablodan bir veya daha fazla kaydı silmek için kullanılır. Bir tablodan yalnızca seçili satırları silmek için, PostgreSQL Bu seçenek, DELETE ifadesini WHERE yan tümcesiyle birleştirmenize olanak tanır; aksi takdirde tablodaki tüm kayıtları siler.

PostgreSQL Sorgu Sözdizimini Sil

DELETE ifadesi aşağıdaki sözdizimi kullanılarak tanımlanabilir:

[ WITH [ RECURSIVE ] with-query [, ...] ]
DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ]
    [ USING using-list ]
    [ WHERE condition(s) | WHERE CURRENT OF cursor-name]
    [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]

Parametreler

Aşağıdaki parametreler mevcuttur:

  • sorgu ileWITH yan tümcesi, DELETE sorgusu içinde bir veya daha fazla alt sorguya adlarıyla referans vermenizi sağlar.
  • Tablo ismi: Kayıtların silineceği tablonun adı.
  • takma ad: Hedef tablonun adının yerine geçebilecek bir değer.
  • liste kullanarak: WHERE koşulunda diğer tablolardaki sütunların kullanılmasına olanak tanıyan tablo ifadeleri.
  • koşullar): isteğe bağlı. Kayıtların silinebilmesi için karşılanması gereken koşullardır. Bu bölüm belirtilmezse, tüm tablo adı kayıtları silinecektir.
  • imleç adı: WHERE CURRENT OF koşulunda kullanılacak imleç. Bu imleç tarafından getirilen son satır silinecektir.
  • çıktı ifadesi: Her satır silindikten sonra DELETE ifadesi tarafından işlenip döndürülecek ifade.
  • çıktı adı: döndürülen sütun için kullanılacak ad.

DELETE ifadesi tüm satırı sildiği için sütun adlarını belirtmenize gerek olmadığını unutmayın.

PostgreSQL Tek Koşullu Sorguyu Sil

DELETE ifadesi, WHERE yan tümcesi kullanılarak belirlenen tek bir koşulla kullanılabilir. Aşağıdaki verilere sahip Fiyat tablosunu ele alalım:

Fiyat:

PostgreSQL Tek Koşullu Sorguyu Sil

ID’si 4 olan kaydı silelim:

DELETE FROM Price
WHERE id = 4;

Yukarıdaki komut, kimlik numarası 4 olan kayıtları siler. Silme işleminin başarılı olup olmadığını kontrol edelim:

PostgreSQL Tek Koşullu Sorguyu Sil

Kimliği 4 olan satır silindi.

İki Koşullu Sorguyu Sil

MKS PostgreSQL DELETE ifadesi iki koşul da alabilir. Bu iki koşul, AND operatörü kullanılarak birleştirilmelidir. Aşağıdaki tabloyu kullanacağız:

Fiyat:

PostgreSQL İki Koşullu Sorguyu Sil

Aşağıda verilen örneği düşünün:

DELETE FROM Price
WHERE id = 3
AND price = 300;

Yukarıdaki komutta, kimlik numarası 3 ve fiyatı 300 olan satırı siliyoruz. Şimdi tabloyu sorgulayabiliriz:

SELECT * FROM Price;

Bu, aşağıdakileri döndürür:

PostgreSQL İki Koşullu Sorguyu Sil

ID'si 3, fiyatı 300 olan kayıt silindi.

PostgreSQL EXISTS koşulunu kullanarak sorguyu silin.

İle VAR Koşula bağlı olarak, silme işlemini daha karmaşık hale getirebilirsiniz. Bazen bir tablodaki kayıtları, başka bir tablodaki kayıtlara göre silme ihtiyacı doğabilir.

FROM yan tümcesi, silme işlemi gerçekleştirirken birden fazla tablodan kayıt listelemenize izin vermediği için, EXISTS yan tümcesi çok kullanışlı hale gelir. Aşağıdaki iki tabloya sahibiz:

Kitap:

PostgreSQL EXISTS koşulunu kullanarak sorguyu silin.

Fiyat:

PostgreSQL EXISTS koşulunu kullanarak sorguyu silin.

Daha sonra şu sorguyu çalıştırabiliriz:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

Bu komut, Fiyat tablosunda eşleşen bir kimliğe sahip ve fiyatı 250'nin altında olan Kitap tablosundaki satırları siler.

Kitap tablosu artık aşağıdaki gibidir:

PostgreSQL EXISTS koşulunu kullanarak sorguyu silin.

Kimliği 1 olan kayıt silindi.

Bir satırı nasıl silerim? PostgreSQL pgAdmin'i kullanma

Aynı silme sorguları, aşağıdaki adımları izleyerek pgAdmin arayüzü üzerinden görsel olarak da çalıştırılabilir:

Tek bir şartla

) 1 Adım pgAdmin hesabınıza giriş yapın. pgAdmin'i açın ve kimlik bilgilerinizle hesabınıza giriş yapın.

) 2 Adım Bir demo veritabanı oluşturun.

  1. Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
  2. Demo'yu tıklayın.

Satırı Sil PostgreSQL pgAdmin'i kullanma

) 3 Adım Sorgu düzenleyicisine aşağıdaki sorguyu yazın:

DELETE FROM Price
WHERE id = 4;

) 4 Adım Yürüt düğmesine tıklayın.

Satırı Sil PostgreSQL pgAdmin'i kullanma

) 5 Adım Şimdi satırın silinip silinmediğini kontrol edelim:

Satırı Sil PostgreSQL pgAdmin'i kullanma

İki Şartla

) 1 Adım pgAdmin hesabınıza giriş yapın.

) 2 Adım

  1. Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
  2. Demo'yu tıklayın.

Satırı Sil PostgreSQL pgAdmin'i kullanma

) 3 Adım Sorgu düzenleyicisine sorguyu yazın:

DELETE FROM Price
WHERE id = 3
AND price = 300;

) 4 Adım Yürüt düğmesine tıklayın.

Satırı Sil PostgreSQL pgAdmin'i kullanma

) 5 Adım Silme işleminin başarılı olup olmadığını kontrol edelim:

Satırı Sil PostgreSQL pgAdmin'i kullanma

EXISTS Koşulunu Kullanma

) 1 Adım pgAdmin hesabınıza giriş yapın.

) 2 Adım

  1. Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
  2. Demo'yu tıklayın.

pgAdmin'de EXISTS koşulunu kullanarak satır silme

) 3 Adım Sorgu düzenleyicisine sorguyu yazın:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

) 4 Adım Yürüt düğmesine tıklayın.

pgAdmin'de EXISTS koşulunu kullanarak satır silme

) 5 Adım Silme işleminin başarılı olup olmadığını kontrol edelim:

pgAdmin'de EXISTS koşulunu kullanarak satır silme

Bu Eğitimde kullanılan Veritabanını İndirin

SSS

TRUNCATE, tüm satırları anında siler ve depolama alanını sıfırlar, ancak WHERE koşulunu ve satır başına tetikleyicileri dikkate almaz. DELETE, WHERE koşulunu kullanarak seçili satırları siler, satır tetikleyicilerini çalıştırır ve bir işlem içinde geri alınabilir.

Bir USING yan tümcesi ekleyin: DELETE FROM member USING denylist WHERE member.phone = denylist.phone. Bu, ikinci tabloyu birleştirir ve eşleşen satırları siler; EXISTS ile aynı sonucu daha net bir birleştirme stili sözdizimiyle verir.

RETURNING ifadesi, aynı sorguda az önce silinen satırlardaki sütunları yankılar. DELETE FROM Price WHERE id = 4 RETURNING * yazın ve PostgreSQL Kaldırılan verileri geri döndürür, böylece uygulamalar değişikliği kaydedebilir veya onaylayabilir.

Evet. DELETE komutunu BEGIN ile bir işlem içine alın, ardından geri almak için ROLLBACK veya saklamak için COMMIT komutunu çalıştırın. COMMIT işlemi yapılana kadar silinen satırlar geri yüklenebilir, bu da hatalı silmelere karşı koruma sağlar.

Gizli ctid sütununu kullanarak her grup için bir kopya saklayın: DELETE FROM Price a USING Price b WHERE a.ctid < b.ctid AND a.id = b.id. Bu, tek bir kaydı korurken yinelenen satırları kaldırır.

Önce aynı filtreyi SELECT sorgusu olarak çalıştırın veya BEGIN ile bir işlem açın ve etkilenen satırları incelemek için RETURNING komutunu kullanın. RevCOMMIT işleminden önce WHERE sonucunu incelemek, amaçlanandan daha fazla satırın silinmesini önler.

Yapay zekâ asistanları, sade İngilizce kuralları doğru WHERE koşuluyla bir DELETE komutuna çevirir, tablolar arası silme işlemleri için EXISTS veya USING önerir ve tüm tabloyu silebilecek bir koşulu eksik olan ifadeleri işaretler.

Evet. Yapay zekâ destekli bir yardımcı pilot, her DELETE işlemini inceler, WHERE koşulu bulunmadığında uyarı verir ve bir işlem veya RETURNING önizlemesi önererek, yanlışlıkla tüm tablonun silinmesi riskini azaltır.

Bu yazıyı şu şekilde özetleyin: