SQL DELETE ile Veri Silme

SQL DELETE ile Veri Silme
SQL Delete ile veri silme
0

SQL DELETE Komutu Nedir? Veritabanından Veri Silme

SQL’de DELETE komutu, veritabanındaki bir tablodan belirli kriterlere uyan kayıtları (satırları) kalıcı olarak silmek için kullanılan kritik bir DML (Data Manipulation Language) işlemidir. Tıpkı UPDATE komutunda olduğu gibi, DELETE işleminde de WHERE şartı hayati önem taşır. Eğer WHERE koşulunu yazmayı unutursanız, tablodaki tüm veriler silinir ve eğer güncel bir yedeğiniz yoksa bu büyük bir felakete dönüşebilir!


DELETE Syntax (Sözdizimi) Yapısı

  • tablo_adi: İçinden kayıt silmek istediğiniz tablonun adıdır.
  • WHERE kosul: Hangi satırların silineceğini belirleyen filtreleme şartıdır. (Uyarı: Kullanılmazsa tablodaki tüm satırlar temizlenir!)

SQL DELETE Kullanımı: Adım Adım Örnekler

1. Belirli ve Tek Bir Kaydı Silme

Örneğin, musteriler tablosundan sistemden ayrılan 5 numaralı müşteriyi silelim:

  • Sadece musteri_id değeri 5 olan o tek kayıt tablodan temizlenir.

2. Belirli Bir Koşulu Sağlayan Çoklu Kayıtları Silme

Geçmişe dönük temizlik yapmak isteyebilirsiniz. siparisler tablosunda 2020 yılından önce verilen tüm eski siparişleri silelim:

  • Belirtilen tarihten daha eski olan tüm sipariş kayıtları topluca silinecektir.

3. Metin (String) Şartına Göre Silme İşlemi

Bir departman kapandığında o departmandaki kayıtları silmek gerekebilir. calisanlar tablosunda “Muhasebe” departmanındaki tüm çalışanları silelim:

  • Departman sütununda “Muhasebe” yazan tüm satırlar silinir.

4. IN Operatörü ile Birden Fazla Belirli Kaydı Silme

Sadece 1 tane değil, belirlediğiniz 3-4 farklı ID’ye sahip kaydı tek seferde silmek için IN operatörü hayat kurtarır:

  • Ürün ID’si 10, 15 ve 22 olan üç farklı ürün tek bir sorguyla hızlıca silinir.

5. LIMIT ile Kontrollü Silme İşlemi (MySQL Özel)

Milyonlarca satırlık bir tabloda silme işlemi yaparken veritabanını kilitlememek ve sunucuyu yormamak için işlemi sınırlandırabilirsiniz:

  • Durumu “Hata” olan kayıtlardan sadece ilk 500 tanesini siler. Bu işlemi bir döngüye sokarak yavaş yavaş temizlik yapabilirsiniz.

DELETE Kullanırken Hayati Uyarılar ve İpuçları

  • WHERE şartını unutmayın: Sadece DELETE FROM calisanlar; yazarsanız tüm çalışanlar geri dönüşü zor bir şekilde silinir.
  • Önce SELECT ile test edin: Silme kodunu çalıştırmadan önce, her zaman aynı WHERE şartı ile verileri görüntüleyin ve hedeflediğiniz veriler olduğundan emin olun:

    Ekrana gelen veriler silmek istediğiniz verilerse, SELECT * kısmını DELETE ile değiştirip sorguyu güvenle çalıştırabilirsiniz.

Mülakatların Vazgeçilmezi: DELETE ve TRUNCATE Farkı Nedir?

Bu iki komut sıkça karıştırılır ve genellikle yazılımcı mülakatlarında sorulur. Aralarındaki temel farklar şunlardır:

  • DELETE: Satırları tek tek siler. Her sildiği satırı “Transaction Log” (işlem günlüğü) dosyasına yazar. Bu sayede yavaştır ama ROLLBACK komutu ile geri alınabilir. WHERE koşulu kullanılarak belirli veriler filtrelenebilir.
  • TRUNCATE: Tablonun içini tek seferde, yapısını bozmadan komple boşaltır. Satır satır log tutmadığı için inanılmaz hızlıdır. Ancak işlem geri alınamaz! WHERE koşulu kullanılamaz.
Paylaş
İlginizi Çekebilir
C# döngüler

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


ReCAPTCHA doğrulama süresi sona erdi. Lütfen sayfayı yeniden yükleyin.