Kesme ve Silme Arasındaki Fark
Verilerin oluşturulması ve manipülasyonu veritabanlarının temelini oluşturur ve bunu sırasıyla DDL ve DML olarak adlandırırız. DDL, Veri Tanımlama Dili'nin kısaltmasıdır. Veritabanlarındaki veri yapılarını oluşturabilir veya değiştirebilir ve tablolardaki verileri değiştirmek için kullanılamazlar. Örneğin, yalnızca belirtilen tablo özniteliklerine sahip bir tablo oluşturan komutlara sahibiz ancak tabloya hiç satır eklemiyor. Ancak, Veri İşleme Dili olan bir DML, tablolardaki verileri ekleyebilir, silebilir veya değiştirebilir. Genel bir kural olarak, DDL komutları tablo yapılarıyla ilgilenirken, DML komutları gerçek verileri ele alır. Bırakalım, neden sadece "Truncate ile Delete arasındaki fark" dan sapıyoruz? DML ve DDL hakkında konuştuğumuz nedenler var. Bunu ön plana çıkan tartışmada anlayacaksınız.
Kısaltma komutu nedir?
Bir Kesme komutunun amacı, tüm tabloyu silmektir. Dolayısıyla bir Kesme komutu kullandığınızda, masadaki tüm verileri kaybedersiniz ve bunu kullanırken ihtiyatlı davranmanız gerekir. Nasıl kullanılacağını bize bildirin.
Truncate sözdizimi:
TRUNCATE TABLE tablo adı ;
Burada, silinmesi gereken tablonun adını belirtmelisiniz. Bu, bellek alanına oturan herhangi bir masanın olmasını sağlar. İşte Truncate'i kullanmaya bir örnek.
Aşağıda 'çalışan' tablosu ve içindeki verilerin satırlarına bakmanız yeterlidir.
emp-id | emp-adı | tanımı |
1011 | Jack | Kâtip |
1012 | Gül | Yönetim |
1014 | Nancy > Finans | |
ÇEŞİTLİ TABLO
çalışan; İşte yukarıdaki sözdiziminin sonucudur ve içindeki veri yoktur.
emp-id
emp-name | atama | Sil Komutu nedir? |
Sil komutunun amacı, belirtilen satırları tablodan kaldırmaktır. Burada 'Where' ifadesi, burada silinmesi gereken satırları belirtmek için kullanılır. Satırları belirtmediğimizde, komut tüm tablolardaki satırları siler. Sadece sözdizimine bak.
çalışantan silin; Yukarıdaki sözdizimi, tüm satırları 'çalışan' tablosundan siler. Dolayısıyla ortaya çıkan tablo hiçbir veri içermez.
'dan Silmek> çalışan
WHERE emp-id = 1011; Bu deyim, emp-id'i 1011 olan tek bir satırı silecektir. Sonuçta oluşan tablo aşağıdaki gibi olacaktır. emp-id
emp-name
atama | 1012 | Güllü |
Yönetici | 1014 | Nancy |
Finans | Farklar: | Truncate is bir DDL; Sil bir DML: |
Yukarıdaki tartışmamızda DDL'nin ve DML'nin nasıl çalıştığını yukarıda tartıştık.Kesme komutu bir DDL'dir ve veri yapısı seviyesinde çalışır. Ancak Sil bir DML komutu ve tablo verileri üzerinde çalışır. DDL için diğer örnekler CREATE ve ALTER'dir. Benzer şekilde, SELECT, UPDATE ve REPLACE gibi komutların bir DML için mükemmel örnekler olduğunu söyleyebiliriz.
- Kısaltma ve Silme nasıl çalışır: Kısalt komutu gönderilir gelmez, sadece belirtilen tablo arar. Ardından tüm verileri hafızadan tamamen kaldırır. Fakat Delete (Sil) durumunda çalışma prosedürü biraz farklıdır. Burada, orijinal tablo verileri, gerçek veri manipülasyonunu yapmadan önce 'Roll back' alanı adı verilen alana kopyalanır. Ardından, değişiklikler gerçek tablo veri alanında yapılır. Dolayısıyla, ikisi de çalışma biçiminde farklılık gösterir.
- Truncate -> tüm verileri tablodan kaldırın -> Tablo alanı artık boşaltılmıştır.
Sil -> Orijinal tablo verilerini Roll Back alanına kopyala -> belirtilen verilerin / tüm tablonun silinmesi -> Tablo alanı boşaltılmış ancak Roll Back alanı doldurulmuştur.
Geri sar: Geri alma, Microsoft aksesuarlarımızdaki Geri Al komutu gibidir. Son zamanlarda yaptığımız değişiklikleri iptal etmek için kullanılır i. e. son kaydedilen noktadan. İşlemi gerçekleştirmek için, veriler düzenlenmeden önce Roll Back alanına kopyalanmalıdır. Bu Geri Dönüşler ekstra bellek gerektirse de orijinal belleğe geri dönmek son derece faydalıdır. Özellikle yanlışlıkla bazı düzenleme yaparken! Şimdi geriye doğru kesilip Siline gelelim. Yukarıda tartıştığımız gibi, Kesme işlemi hiçbir zaman bir geri alma alanı kullanmaz ve orijinal verilere geri dönemez. Ancak Sil komutu, geri alma alanı kullanır ve sırasıyla değişiklikleri kabul etmek veya iptal etmek için sırayla 'Commit' veya 'RollBack' kullanabilirsiniz.
- Tetikleyiciler: Tetikleyiciler hakkında bir açıklama isteyenler için, ufak bir not. Tetikleyiciler, tablo belirli bir koşulla karşılaştığında etkinleştirilmesi gereken, önceden belirlenmiş bir dizi işlem / işlemdir. Örneğin, bir çalışanın şirketle ilgili deneyimi bir yıldan fazla olduğunda, maaş miktarının değiştirilmesini tetikleyebiliriz. Bu tetikleyiciler diğer tablolarda da çalışabilirdi. Örneğin, bir çalışan için maaş zammı yapıldığında finans masasını güncelleyebiliriz.
- Truncate bir DDL komutu, tetikleyici buraya izin verilmez. Ancak bir Sil, DML komutu, Tetikleyicilere burada izin verilir. Hangisi daha hızlı?
Tahmin ettiğiniz gibi Kesme komutu Sil komutundan daha hızlı olurdu. İlki 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 çok zaman kazandırır. Bu iki faktör Truncate'i Sil'den daha hızlı hale getirir.
- WHERE yanılsamasını kullanabilir miyiz? 'Where' yan tümcesi, belirli eşleştirme koşullarını belirtmek için kullanılır ve Kesme ile hiçbir şey yapmaz. Truncate hiç eşleşen koşulları aramıyor ve sadece tüm satırları kaldırıyor, burada bir 'Where' ifadesi kullanamıyorduk.Ancak, durumu 'Delete' komutundaki 'where' maddesinin yardımıyla daima belirleyebiliriz.
- Hangi alan daha fazla yer kaplıyor? Kesme, geri alma alanını kullanmayacak ve bu bellekten tasarruf sağlıyor. Ancak silmek, Geri alma alanı biçiminde bir yedekleme gerektiriyor ve bu nedenle, kesme işleminden daha fazla bellek alanı gerektiriyor.
- Öyleyse bunlar farklılıklar ve tablo biçiminde bakalım. S. Hayır