romegames 1
romegames
Krutzo 1
Krutzo
shrpnl 1
shrpnl
Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Altın Konu SQL TRUNCATE TABLOSU NEDİR?

Karadayı ✓

Karadayı ✓
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
Uzman
Ayın Üyesi
Katılım
21 May 2024
Konular
1,450
Mesajlar
2,451
Çözüm
7
Online süresi
3mo 25d
Reaksiyon Skoru
2,564
Altın Konu
1,027
Başarım Puanı
274
Yaş
51
MmoLira
36,853
DevLira
110
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

mysql table truncate.png


SQL TRUNCATE TABLOSU NEDİR?

SQL, tablo kayıtlarını tek tek silmek yerine, çok zaman alıcı ve zahmetli bir işlem olan bir tabloyu tek seferde tamamen TRUNCATE etme komutunu sağlar.

SQL TRUNCATE TABLE İfadesi

SQL TRUNCATE TABLE komutu bir tabloyu boşaltmak için kullanılır. Bu komut DROP TABLE ve CREATE TABLE ifadelerinin bir dizisidir ve DROP ayrıcalığını gerektirir.

Bir tabloyu silmek için DROP TABLE komutunu da kullanabilirsiniz ancak bu, veritabanından tüm tablo yapısını kaldıracaktır ve tekrar veri depolamak isterseniz bu tabloyu yeniden oluşturmanız gerekecektir.

Sözdizimi

TRUNCATE TABLE komutunun temel sözdizimi aşağıdaki gibidir.
TRUNCATE TABLE table_name;

Örnek

Öncelikle aşağıda gösterildiği gibi müşterilerin adı, yaşı, adresi, maaşı vb. gibi kişisel bilgilerini saklayabilen CUSTOMERS adlı bir tablo oluşturalım.

Kod:
CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);

Şimdi INSERT ifadesini kullanarak bu tabloya aşağıdaki gibi değerler ekleyin:

Kod:
INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

Tablo aşağıdaki gibi oluşturulacaktır

İDİSİMYAŞADRESMAAŞ
1Rameş32Ahmedabad2000,00
2Hilan25Delhi1500,00
3Kauşik23Kota2000,00
4Çaytali25Bombay6500,00
5Sert27Bhopal8500,00
6Komal22Haydarabad4500,00
7Çirkin24Hindistan10000,00

Aşağıdaki SQL TRUNCATE TABLE CUSTOMER ifadesi CUSTOMERS tablosunun tüm kayıtlarını kaldıracaktır.

TRUNCATE TABLE CUSTOMERS;

Doğrulama

Şimdi, CUSTOMERS tablosu kesilir ve SELECT ifadesinin çıktısı aşağıdaki kod bloğunda gösterildiği gibi olur.

Kod:
SELECT * FROM CUSTOMERS;

TRUNCATE ve DELETE arasındaki fark

TRUNCATE ve DELETE komutları mantıksal olarak benzer şekilde çalışsa da aralarında bazı önemli farklar vardır. Bunlar aşağıdaki tabloda ayrıntılı olarak açıklanmıştır.

SİLMEKKISALTMAK
SQL'deki DELETE komutu , WHERE Maddesinde belirtilen koşullara bağlı olarak bir tablodan bir veya daha fazla satırı kaldırır.SQL'in TRUNCATE komutu, herhangi bir koşulun karşılanıp karşılanmadığına bakılmaksızın bir tablodan tüm satırları kaldırmak için kullanılır.
Bir DML(Veri İşleme Dili) komutudur.Bu bir DDL(Veri Tanımlama Dili) komutudur.
DELETE komutunda değişiklik yaptıktan sonra değişikliklerin commit edilebilmesi için manuel COMMIT yapılması gerekmektedir.TRUNCATE komutunu kullandığınızda tabloda yapılan değişiklikler otomatik olarak kaydedilir.
Satırları tek tek siler ve her silme işlemine aynı ölçütleri uygular.Tüm bilgileri tek seferde siler.
Bu durumda WHERE ifadesi koşul olarak kullanılır.WHERE Maddesi mevcut değil.
Silindikten sonra tüm satırlar kilitlenir.TRUNCATE, sayfaları kilitleyerek silinmelerini engelleyen bir tablo kilidi kullanır.
Yapılan her işlemin kaydını log dosyasına kaydeder.Kaydedilen tek etkinlik, verilerin saklandığı sayfaların kaldırılmasıdır.
TRUNCATE komutuna göre daha fazla işlem alanı tüketir.Karşılaştırmalı olarak daha az işlem alanı kaplar.
Kimlik sütunu varsa, tablo kimliği tablo oluşturulduğunda sahip olduğu değere sıfırlanmaz.Tablo kimliğini, kendisine tohum olarak verilen bir değere döndürür.
Silmek için yetkilendirme gerekir.Tablo değiştirme izni gerektirir.
Büyük veritabanlarında ise çok daha yavaştır.Çok daha hızlı.

TRUNCATE ve DROP

Tablo yapısını sıfırlayan TRUNCATE'in aksine, DROP komutu tablo alanını bellekten tamamen boşaltır. Her ikisi de veritabanı nesnelerinin tanımlarıyla etkileşime girdikleri için Veri Tanımlama Dili (DDL) işlemleridir; bu da bu komutlar yürütüldüğünde veritabanının geri alma şansı olmadan otomatik olarak işleme girmesini sağlar.

Ancak bu iki komut arasında hala bazı farklılıklar bulunmaktadır ve bunlar aşağıdaki tabloda özetlenmiştir:

DÜŞÜRMEKKISALTMAK
SQL'deki DROP komutu, bir tablonun tanımını, dizinlerini, kısıtlamalarını, verilerini vb. de dahil olmak üzere veritabanından tüm tabloyu kaldırır.TRUNCATE komutu, herhangi bir koşulun karşılanıp karşılanmadığına bakılmaksızın bir tablodan tüm satırları kaldırmak ve tablo tanımını sıfırlamak için kullanılır.
Bu bir DDL(Veri Tanımlama Dili) komutudur.Aynı zamanda bir DDL(Veri Tanımlama Dili) komutudur.
Tablo alanı tamamen bellekten arındırılmıştır.Tablo hala hafızada mevcut.
Bütün bütünlük kısıtlamaları ortadan kaldırılır.Tabloda bütünlük kısıtlamaları hala mevcut.
Bu komutu gerçekleştirebilmek için tablo şeması ve tablo üzerinde sırasıyla ALTER ve CONTROL izinlerinin olması gerekir.Tabloyu kesmek için yalnızca ALTER izinlerine ihtiyaç vardır.
DROP komutu TRUNCATE komutundan çok daha yavaştır ancak DELETE komutundan daha hızlıdır.TRUNCATE komutu hem DROP hem de DELETE komutlarından daha hızlıdır.

 
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst