Kesme ve Silme Arasındaki Fark

Veri oluşturma ve işleme, veritabanlarının temelini oluşturur ve buna sırasıyla DDL ve DML adını veririz. DDL, Veri Tanımlama Dili'nin kısaltmasıdır. Veritabanlarındaki veri yapılarını oluşturabilir veya değiştirebilir ve tablolarda bulunan verileri değiştirmek için kullanılamazlar. Örneğin, yalnızca belirtilen tablo niteliklerine sahip bir tablo oluşturan komutlarımız var, ancak tabloya hiçbir zaman satır eklemiyor. Ancak bir DML, Veri İşleme Dili, tablolara veri ekleyebilir, silebilir veya değiştirebilir. Genel bir kural olarak, DDL komutları tablo yapılarıyla ilgilenirken, DML komutları gerçek verilerle ilgilenir. Bırakalım, neden sadece “Kes ve Sil arasındaki fark” konusundan sapıyoruz? DML ve DDL hakkında konuşmamızın nedenleri var. Önümüzdeki tartışmada anlayacaksınız.

Truncate komutu nedir?

Kes komutunun amacı tüm tabloyu silmektir. Bir Truncate komutunu kullandığınızda, tablodaki tüm verileri kaybedeceksiniz ve bunu kullanırken dikkatli olmalısınız. Nasıl kullanılacağını bize bildirin.

Truncate sözdizimi:

BAGAJ TABLOSU Tablo ismi;

Burada, genel olarak silinmesi gereken tablonun adını belirtmelisiniz. Bu, bellek alanında oturan herhangi bir tablonun olmasını sağlar. İşte Truncate kullanımına bir örnek.

Aşağıda 'çalışan' tablosu ve içindeki veri satırlarına bakın.

emp-id emp-name tayin
1011 kriko kâtip
1012 pembe yönetim
1014 Nancy maliye

Şimdi, çalışan tablosunda aşağıdaki komutu verelim.

BAGAJ TABLOSU çalışan;

Yukarıdaki sözdiziminin sonucu ve burada veri yok.

emp-id emp-name tayin

Silme Komutu nedir?

Sil komutunun amacı, belirtilen satırları tablodan kaldırmaktır. Burada, silinmesi gereken satırları belirtmek için burada 'Nerede' cümlesi kullanılır. Satırları belirtmediğimizde, komut tablodaki tüm satırları siler. Sadece söz dizimine bak.

SİL çalışan;

Yukarıdaki sözdizimi, 'çalışan' tablosundaki tüm satırları siler. Sonuçta elde edilen tablo veri içermez.

SİL işçi NEREDE emp-id = 1011;

Bu ifade emp-id değeri 1011 olan tek bir satırı siler. Sonuçta elde edilen tablo aşağıdaki gibi olacaktır.

emp-id emp-name tayin
1012 pembe yönetim
1014 Nancy maliye

farklılıklar:

  • Kesme bir DDL'dir; Sil bir DML'dir: Yukarıda tartışmamızda DDL ve DML'nin nasıl çalıştığını tartıştık. Kes komutu bir DDL'dir ve veri yapısı düzeyinde çalışır. Ancak Sil bir DML komutudur ve tablo verilerinde çalışır. DDL için diğer örnekler CREATE ve ALTER'dir. Benzer şekilde, SELECT, UPDATE ve INSERT gibi komutların bir DML için mükemmel örnekler olduğunu söyleyebiliriz.
  • Kes ve Sil nasıl çalışır: Kes komutunu verir vermez, sadece belirtilen tabloyu arar. Sonra tüm verileri bellekten tamamen kaldırır. Ancak Silme durumunda çalışma prosedürü biraz farklıdır. Burada, orijinal tablo verileri gerçek veri manipülasyonu yapmadan önce 'Geri al' alanı olarak adlandırılan alana kopyalanır. Daha sonra gerçek tablo veri alanında değişiklikler yapılır. Yani, ikisi de çalışma şekline göre farklılık gösteriyor.

truncate -> tüm verileri tablodan kaldır -> Tablo alanı şimdi serbest bırakıldı.

Sil -> Orijinal tablo verilerini Geri Al alanına kopyala -> belirtilen verileri / tüm tabloyu sil -> Tablo alanı serbest bırakıldı, ancak Geri Al alanı dolduruldu.

  • Geri al: Geri alma, Microsoft aksesuarlarımızdaki Geri Al komutuna benzer. Son zamanlarda yaptığımız değişiklikleri, yani son kaydedilen noktadan iptal etmek için kullanılır. İşlemi gerçekleştirmek için, veriler düzenlenmeden önce Geri Alma alanına kopyalanmalıdır. Bu Geri Sarmalar ekstra bellek gerektirse de, orijinaline geri dönmek için son derece kullanışlıdır. Özellikle, yanlışlıkla bazı düzenleme yaparken! Şimdi geri dönme konusunda Kesin ve Sil'e gelelim. Yukarıda tartıştığımız gibi, Kesik asla geri alma alanı kullanmaz ve orijinal verilere geri dönemedik. Ancak Delete komutu geri alma alanı kullanır ve değişiklikleri sırasıyla kabul etmek veya iptal etmek için 'Tamamla' veya 'Geri Al' seçeneğini kullanabiliriz.
  • tetikleyiciler: Tetikleyiciler hakkında bir açıklamaya ihtiyaç duyanlar için küçük bir not. Tetikleyiciler, tablo belirli bir koşulla karşılaştığında etkinleştirilmesi gereken önceden belirlenmiş bir işlem / işlem kümesidir. Örneğin, bir çalışanın şirketle olan deneyimi bir yıldan fazla olduğunda maaş miktarını değiştirmeyi tetikleyebiliriz. Bu tetikleyiciler diğer tablolarda da çalışabilir. Örneğin, bir çalışan için maaş zammı yapılır yapılmaz finans tablosunu güncelleyebiliriz.

Kesme bir DDL komutudur, burada tetikleyiciye izin verilmez. Ancak Sil bir DML komutudur, burada Tetikleyicilere izin verilir.

  • Hangisi daha hızlı? Tahmin ettiğiniz gibi, Kes komutunu Sil komutundan daha hızlı olur. Birincisi tüm verileri kaldırabilir ve eşleşen koşulları kontrol etmeye gerek yoktur. Ayrıca, orijinal veriler geri alma alanına kopyalanmaz ve bu da çok zaman kazandırır. Bu iki faktör, Truncate öğesinin Delete'ten daha hızlı çalışmasını sağlar.
  • WHERE yan tümcesini kullanabilir miyiz? 'Where' yan tümcesi belirli eşleştirme koşullarını belirtmek için kullanılır ve Truncate ile bir şey değildir. Truncate hiçbir zaman eşleşen koşulları aradığından ve yalnızca tüm satırları kaldırdığından, burada 'Where' deyimini kullanamadık. Ancak her zaman Sil komutundaki 'where' deyiminin yardımıyla koşulu belirleyebiliriz.
  • Hangisi daha fazla yer kaplıyor? Kesilme geri alma alanını kullanmayacak ve bu belleği kaydedecektir. Ancak silme, Geri Alma alanı şeklinde bir yedeklemeye ihtiyaç duyar ve bu nedenle kesmeden daha fazla bellek alanı gerektirir.

Bunlar farklar ve tablo şeklinde bakalım.

S.No Farklılıklar truncate Sil
1. DDL veya DML? Bir DDL'dir ve veri yapısı düzeyinde çalışır. DDL için diğer örnekler CREATE ve ALTER'dir. Bu bir DML komutudur ve tablo verilerinde çalışır. DML, Veri İşleme Dili anlamına gelir. SELECT, UPDATE ve INSERT gibi komutlar bir DML için mükemmel örneklerdir. DML, Veri İşleme Dili anlamına gelir.

2. O nasıl çalışır? Kes komutunu verir vermez, sadece belirtilen tabloyu arar. Sonra tüm verileri bellekten tamamen kaldırır. Burada, orijinal tablo verileri gerçek veri manipülasyonu yapmadan önce 'Geri al' alanı olarak adlandırılan alana kopyalanır. Ardından gerçek tablo veri alanında değişiklikler yapılır.
3. Rollback Kes komutu hiçbir zaman geri alma alanı kullanmaz ve orijinal verilere geri dönemedik. Geri alma alanı özeldir ve DML komutları verildiğinde işgal edilir. Sil komutu geri alma alanı kullanır ve değişiklikleri sırasıyla kabul etmek veya iptal etmek için 'Tamamla' veya 'Geri Al' seçeneğini kullanabiliriz.

4. tetikleyiciler Kesme bir DDL komutudur, tetikleyicilere izin verilmez. Sil bir DML komutudur, burada tetikleyicilere izin verilir.

5. Hangisi daha hızlı? Tüm verileri kaldırabilir ve eşleşen koşulları kontrol etmeye gerek yoktur. Ayrıca, orijinal veriler geri alma alanına kopyalanmaz ve bu da çok zaman kazandırır. Bu iki faktör, Truncate öğesinin Delete'ten daha hızlı çalışmasını sağlar.

Geri alma alanını kullanır ve her zaman orijinal verilerin üzerinde tutulması gerekir. Bu ekstra bir yüktür ve sırayla Truncate'ten çok zaman alır.
6. WHERE yan tümcesini kullanabilir miyiz? Truncate hiçbir zaman eşleşen koşulları aradığından ve yalnızca tüm satırları kaldırdığından, burada 'Where' deyimini kullanamadık. Ancak her zaman Sil komutundaki 'where' deyiminin yardımıyla koşulu belirleyebiliriz.
7. Hangisi daha fazla yer kaplıyor? Kesilme geri alma alanını kullanmayacak ve bu belleği kaydedecektir. Geri alma alanı şeklinde bir yedeklemeye ihtiyacı vardır ve bu nedenle kesikten daha fazla bellek alanı gerektirir.

Herhangi iki varlık arasındaki farkları bilmek her ikisinin de bilgisini genişletir! Özellikle truncate ve delete komutları arasındaki farkları anlamak için doğru bir yola, yani web sayfasına geldiniz. Umarım şimdi farklılıkları ile netsiniz ve bunu anlamanıza yardımcı olsaydık bize bildirin. Ayrıca hangisinin geride kaldığını göstermemize de yardımcı olabilirsiniz!