ความแตกต่างระหว่างลบและตัดทอน
ลบหรือตัดทอน
ทั้งคำสั่ง SQL (Structured Query Language) จะมีการใช้คำสั่ง Delete and Truncate เพื่อกำจัดข้อมูลที่เก็บอยู่ในตารางในฐานข้อมูล. ลบคือ DML (Data Manipulation Language) และจะลบแถวบางส่วนหรือทั้งหมดออกจากตาราง 'Where clause' ใช้เพื่อระบุแถวที่ต้องการลบออกและถ้าไม่ใช้คำสั่ง Where กับคำสั่ง Delete จะลบข้อมูลทั้งหมดในตารางออก Truncate เป็นคำสั่ง DDL (Data Definition Language) และจะลบข้อมูลทั้งหมดออกจากตาราง ทั้งสองคำสั่งไม่ทำลายโครงสร้างตารางและการอ้างอิงไปยังตารางและมีเพียงข้อมูลที่ถูกลบตามต้องการ
คำสั่งลบคำสั่งลบคำสั่ง
ลบช่วยให้ผู้ใช้ลบข้อมูลออกจากตารางที่มีอยู่ในฐานข้อมูลขึ้นอยู่กับเงื่อนไขที่ระบุและใช้ 'Where clause' เพื่อกำหนดเงื่อนไขนี้ ลบคำสั่งเรียกว่าเป็นการดำเนินการที่บันทึกไว้เนื่องจากจะลบเพียงแถวเดียวในแต่ละครั้งและเก็บรายการสำหรับการลบแถวแต่ละรายการในบันทึกธุรกรรม ดังนั้นนี้ทำให้การดำเนินงานช้าลง Delete เป็นคำสั่ง DML ดังนั้นจึงไม่ได้เกิดขึ้นโดยอัตโนมัติขณะที่รันคำสั่ง ดังนั้นการดำเนินการลบสามารถย้อนกลับเพื่อเข้าถึงข้อมูลได้อีกครั้งหากจำเป็น หลังจากดำเนินการคำสั่ง Delete แล้วควรทำหรือรีดเพื่อบันทึกการเปลี่ยนแปลงอย่างถาวร คำสั่งลบไม่ได้ลบโครงสร้างตารางของตารางออกจากฐานข้อมูล ยังไม่ได้จัดสรรพื้นที่หน่วยความจำที่ใช้โดยตาราง
ไวยากรณ์ทั่วไปสำหรับคำสั่ง Delete มีดังต่อไปนี้
DELETE FROM WHERE
Truncate Statement
คำสั่ง Truncate จะลบข้อมูลทั้งหมดออกจากตารางที่มีอยู่ในฐานข้อมูล แต่จะเก็บรักษาโครงสร้างตารางเดียวกันและยังมีข้อ จำกัด ด้านความสมบูรณ์, สิทธิ์การเข้าถึงและความสัมพันธ์กับตารางอื่น ๆ ดังนั้นจึงไม่จำเป็นต้องกำหนดตารางอีกและสามารถใช้โครงสร้างตารางเก่าได้หากผู้ใช้ต้องการใช้ตารางนี้อีกครั้ง ตัดทอนจะลบข้อมูลทั้งหมดโดยยกเลิกการจัดสรรหน้าข้อมูลที่ใช้เพื่อเก็บข้อมูลและเฉพาะการยกเลิกการเก็บข้อมูลหน้าเว็บเหล่านี้จะถูกเก็บไว้ในบันทึกธุรกรรม ดังนั้นคำสั่งตัดทอนจึงใช้ทรัพยากรระบบและทรานแซคชันเพียงเล็กน้อยในการดำเนินงานดังนั้นจึงเร็วกว่าคำสั่งที่เกี่ยวข้องอื่น ๆ Truncate เป็นคำสั่ง DDL ดังนั้นจึงใช้ภาระผูกพันแบบอัตโนมัติก่อนและหลังการดำเนินการคำสั่ง ดังนั้นการตัดทอนไม่สามารถย้อนกลับข้อมูลได้อีก แต่อย่างใด มันเผยแพร่พื้นที่หน่วยความจำที่ใช้โดยตารางหลังจากการดำเนินการ แต่คำสั่ง Truncate ไม่สามารถใช้กับตารางที่อ้างอิงโดยข้อ จำกัด คีย์ต่างประเทศ
ต่อไปนี้เป็นไวยากรณ์ทั่วไปสำหรับคำสั่ง Truncate
TRUNCATE TABLEอะไรคือความแตกต่างระหว่าง Delete and Truncate?
1 คำสั่ง Delete and Truncate ลบข้อมูลจากตารางที่มีอยู่ในฐานข้อมูลโดยไม่ทำอันตรายต่อโครงสร้างตารางหรือข้อมูลอ้างอิงอื่น ๆ ในตาราง