ความแตกต่างระหว่างการลบและการตัดทอน

ความแตกต่างระหว่างการลบและการตัดทอน
ความแตกต่างระหว่างการลบและการตัดทอน

วีดีโอ: ความแตกต่างระหว่างการลบและการตัดทอน

วีดีโอ: ความแตกต่างระหว่างการลบและการตัดทอน
วีดีโอ: มารู้จัก Telnet , SSH และ FTP กันครับ โดย Mr.Jodoi 2024, พฤศจิกายน
Anonim

ลบ vs ตัดทอน

ทั้งคำสั่ง SQL (Structure Query Language) ทั้ง Delete และ Truncate ใช้เพื่อกำจัดข้อมูลที่จัดเก็บไว้ในตารางในฐานข้อมูล Delete เป็นคำสั่ง DML (Data Manipulation Language) และจะลบบางแถวหรือทั้งหมดของตาราง 'ส่วนคำสั่ง' ใช้เพื่อระบุแถวที่ต้องการลบ และถ้าส่วนคำสั่ง Where ไม่ได้ใช้กับคำสั่ง Delete จะเป็นการลบข้อมูลทั้งหมดในตาราง Truncate เป็นคำสั่ง DDL (Data Definition Language) และจะลบข้อมูลทั้งหมดออกจากตาราง คำสั่งทั้งสองนี้ไม่ทำลายโครงสร้างตารางและการอ้างอิงไปยังตาราง และจะลบเฉพาะข้อมูลตามความจำเป็นเท่านั้น

ลบใบแจ้งยอด

Delete คำสั่งอนุญาตให้ผู้ใช้ลบข้อมูลออกจากตารางที่มีอยู่ในฐานข้อมูลตามเงื่อนไขที่ระบุ และใช้ 'Where clause' เพื่อกำหนดเงื่อนไขนี้ คำสั่ง Delete เรียกว่าการดำเนินการที่บันทึกไว้ เนื่องจากจะลบทีละแถวเท่านั้น และเก็บรายการสำหรับการลบแต่ละแถวไว้ในบันทึกธุรกรรม จึงทำให้การทำงานช้าลง การลบเป็นคำสั่ง DML ดังนั้นจึงไม่มีการคอมมิตโดยอัตโนมัติขณะดำเนินการคำสั่ง ดังนั้น การดำเนินการลบสามารถย้อนกลับเพื่อเข้าถึงข้อมูลได้อีกครั้ง หากจำเป็น หลังจากดำเนินการคำสั่ง Delete แล้ว ควรคอมมิตหรือย้อนกลับเพื่อบันทึกการเปลี่ยนแปลงอย่างถาวร คำสั่ง Delete ไม่ได้เอาโครงสร้างตารางของตารางออกจากฐานข้อมูล นอกจากนี้ยังไม่จัดสรรพื้นที่หน่วยความจำที่ใช้โดยตาราง

ไวยากรณ์ทั่วไปสำหรับคำสั่ง Delete ระบุไว้ด้านล่าง

ลบจาก

หรือ

ลบจากที่ไหน

ตัดคำชี้แจง

Truncate คำสั่งลบข้อมูลทั้งหมดออกจากตารางที่มีอยู่ในฐานข้อมูล แต่จะคงโครงสร้างตารางเดิมไว้ รวมถึงข้อจำกัดด้านความสมบูรณ์ สิทธิ์ในการเข้าถึง และความสัมพันธ์กับตารางอื่นๆ ดังนั้นจึงไม่จำเป็นต้องกำหนดตารางอีกครั้ง และสามารถใช้โครงสร้างตารางแบบเก่าได้ หากผู้ใช้ต้องการใช้ตารางซ้ำอีกครั้ง Truncate ลบข้อมูลทั้งหมดโดยการจัดสรรคืนหน้าข้อมูลที่ใช้ในการเก็บข้อมูล และเฉพาะการจัดสรรคืนหน้าเหล่านี้เท่านั้นที่จะถูกเก็บไว้ในบันทึกธุรกรรม ดังนั้น คำสั่ง truncate จึงใช้ทรัพยากรระบบและบันทึกธุรกรรมเพียงเล็กน้อยสำหรับการดำเนินการ ดังนั้นจึงเร็วกว่าคำสั่งอื่นๆ ที่เกี่ยวข้อง Truncate เป็นคำสั่ง DDL ดังนั้นจึงใช้การคอมมิตอัตโนมัติก่อนและหลังการดำเนินการคำสั่ง ดังนั้น truncate จึงไม่สามารถย้อนกลับข้อมูลได้อีกแต่อย่างใด มันปล่อยพื้นที่หน่วยความจำที่ใช้โดยตารางหลังจากดำเนินการ แต่ไม่สามารถใช้คำสั่ง Truncate กับตารางที่อ้างอิงโดยข้อจำกัดของคีย์ต่างประเทศ

ต่อไปนี้เป็นรูปแบบทั่วไปสำหรับคำสั่งตัดทอน

ตัดตาราง

การลบและการตัดทอนต่างกันอย่างไร

1. คำสั่ง Delete และ Truncate จะลบข้อมูลออกจากตารางที่มีอยู่ในฐานข้อมูลโดยไม่กระทบต่อโครงสร้างตารางหรือการอ้างอิงอื่นๆ ไปยังตาราง

2. อย่างไรก็ตาม คำสั่ง Delete สามารถใช้เพื่อลบแถวที่ระบุเฉพาะในตารางโดยใช้เงื่อนไขที่เกี่ยวข้อง หรือเพื่อลบแถวทั้งหมดโดยไม่มีเงื่อนไขใดๆ ในขณะที่คำสั่ง Truncate สามารถใช้สำหรับการลบข้อมูลทั้งหมดในตารางเท่านั้น

3. Delete เป็นคำสั่ง DML และสามารถย้อนกลับการดำเนินการได้หากจำเป็น แต่ Truncate เป็นคำสั่ง DDL ดังนั้นจึงเป็นคำสั่งยืนยันอัตโนมัติและไม่สามารถย้อนกลับได้ไม่ว่าด้วยวิธีใด ดังนั้นจึงเป็นสิ่งสำคัญที่จะใช้คำสั่งนี้อย่างระมัดระวังในการจัดการฐานข้อมูล

4. การดำเนินการตัดทอนใช้ทรัพยากรระบบและทรัพยากรบันทึกธุรกรรมน้อยกว่าการดำเนินการลบ ดังนั้น การตัดทอนจะถือว่าเร็วกว่าการลบ

5. นอกจากนี้ Delete จะไม่จัดสรรพื้นที่ว่างที่ใช้โดยตาราง ในขณะที่ Truncate จะเพิ่มพื้นที่ว่างที่ใช้หลังจากดำเนินการ ดังนั้น Delete จึงไม่มีประสิทธิภาพในกรณีที่ลบข้อมูลทั้งหมดออกจากตารางฐานข้อมูล

6. อย่างไรก็ตาม Truncate ไม่ได้รับอนุญาตให้ใช้เมื่อมีการอ้างอิงตารางโดยข้อจำกัดของคีย์ต่างประเทศ และในกรณีนั้น สามารถใช้คำสั่ง Delete แทน Truncate ได้

7. สุดท้าย คำสั่งทั้งสองนี้มีข้อดีและข้อเสียในการใช้งานในระบบจัดการฐานข้อมูล และผู้ใช้ควรตระหนักถึงการใช้คำสั่งเหล่านี้อย่างเหมาะสมเพื่อให้ได้ผลลัพธ์ที่ดี