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.
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 |
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 |
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.
Kesme bir DDL komutudur, burada tetikleyiciye izin verilmez. Ancak Sil bir DML komutudur, burada Tetikleyicilere izin verilir.
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!