SQL’de Delete Komutu

DELETE deyimi, veritabanında bulunan bir tablodaki istenilen kayıtları silmek amacıyla kullanılan temel bir SQL deyimidir. Bu derste örnek bir tablo üzerinde DELETE deyiminin kullanımıyla ilgili bazı örnekler yapacağız.

Önceki derslerde de olduğu gibi, bu derste de aşağıdaki örnek tablomuzu kullanacağız.

tablo: personel

ID isim bolum dtarihi dyeri maas
24 Aylin Demiray Muhasebe 1982 Niğde 1100
42 Mehmet Eroğlu Bilgi İşlem 1977 Ankara 1450
54 Selim Kaya Bilgi İşlem 1965 Konya 1400
61 Sevda Gökalp Arşiv 1980 İstanbul 1300

Not: Tablodaki ID alanı birincil anahtar, ID, dtarihi ve maas alanları sayısal, diğerleri metin tiptedir. Ayrıca normal şartlarda bolum ve dyeri alanlarında ilişki kurulması gerekir. Fakat burada konuyu basit tutmak amacıyla bilgiler bu şekilde kaydedilmiştir.

DELETE deyiminin formatı şu şekildedir:

DELETE FROM [tablo adı] WHERE [şartlar]

Burada önemli bir noktaya temas etmek istiyorum. DELETE deyimiyle yapılan işlemler sonucunda kayıt veya kayıtlar tamamen silinir. Örneğin; yukarıdaki tablodan ID’si 61 olan kaydı silmek istersek kayıt tamamen silinir, yani tabloda artık 3 kayıt kalır. Bir kayıttaki belli alanları silmek (temizlemek) istersek UPDATE deyimini kullanırız.

Bu formatta ilk dikkatimizi çeken şey DELETE deyiminden sonra hiçbir alan adı belirtmiyoruz. Basit bir örnekle başlayalım:

DELETE FROM personel

Bu SQL komutu herhangi bir şart aramaksızın (WHERE deyimini kullanmadık), personel tablosunda bulunan kayıtların hepsini siler. Fakat burada dikkat edilmesi gereken husus, bu işlemden sonra personel tablosu yapısını aynen korur. Yani içindeki kayıtlar silinir ama tablo yapısı, alan isimleri, veri türleri, birincil anahtar, vs. hepsi korunur. Eğer tabloyu içindeki kayıtlarla beraber tamamen silmek istersek DELETE yerine DROP TABLE komutunu kullanırız.

Başka bir örnekle devam edelim. Bu örnekte bölümü Muhasebe olan kayıtları silmek istiyoruz. Dolayısıyla komutumuz şu şekilde olacak:

DELETE FROM personel WHERE bolum='Muhasebe'

Bu komuttan sonra tablodan şartı sağlayan bir kayıt silinecek ve tablonun son hali şu şekilde olacaktır.

ID isim bolum dtarihi dyeri maas
42 Mehmet Eroğlu Bilgi İşlem 1977 Ankara 1450
54 Selim Kaya Bilgi İşlem 1965 Konya 1400
61 Sevda Gökalp Arşiv 1980 İstanbul 1300

Başka bir örnekle devam ediyoruz:

DELETE FROM personel WHERE dTarihi>1975 AND dTarihi<1985

Bu sorgunun anlamı da şudur: Personel tablosundan doğum tarihi 1975’ten büyük ve 1985’ten küçük (1975 ile 1985 yılları arasında) olan kayıtları sil. Orijinal tablomuzdaki kayıtlardan 3 tanesi bu şartı sağlıyor. Dolayısıyla 3 kayıt silincek ve geriye tek bir kayıt kalacaktır:

ID isim bolum dtarihi dyeri maas
54 Selim Kaya Bilgi İşlem 1965 Konya 1400

Örneklerimiz bu kadar, faydalı olması dileğiyle.

BENZER YAZILAR