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

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

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

วีดีโอ: ความแตกต่างระหว่างการดรอปและการตัดทอน
วีดีโอ: Difference Between B.Tech and B.E | Bachelor of Technology Versus Bachelor of Engineering | 2020-21 2024, กรกฎาคม
Anonim

ดรอป vs ทรันเคท

Drop and Truncate เป็นคำสั่ง SQL (Structured Query Language) สองคำสั่งที่ใช้ในระบบการจัดการฐานข้อมูล ซึ่งเราต้องการลบบันทึกข้อมูลออกจากฐานข้อมูล คำสั่ง Drop และ Truncate จะลบข้อมูลทั้งหมดในตารางและคำสั่ง SQL ที่เกี่ยวข้อง การลบจะไม่มีผลในกรณีนี้ เนื่องจากใช้พื้นที่จัดเก็บมากกว่า Drop และ Truncate

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

วางคำสั่ง

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

วางตาราง

เราต้องแทนที่ชื่อตารางที่เราต้องการลบออกจากฐานข้อมูลในตัวอย่างข้างต้นของคำสั่ง Drop

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

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

ตัดคำสั่ง

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

ตัดตาราง

เราควรแทนที่ชื่อตารางซึ่งเราต้องการลบข้อมูลทั้งหมดในไวยากรณ์ด้านบน

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

Drop และ Truncate ต่างกันอย่างไร

ทั้งคำสั่ง Drop และ Truncate เป็นคำสั่ง DDL และคำสั่งยืนยันอัตโนมัติ ดังนั้นธุรกรรมที่ดำเนินการโดยใช้คำสั่งเหล่านี้จะไม่สามารถย้อนกลับได้

ความแตกต่างหลักระหว่าง Drop และ Truncate คือคำสั่ง Drop จะลบ ไม่เพียงแต่ข้อมูลทั้งหมดในตาราง แต่ยังลบโครงสร้างตารางอย่างถาวรจากฐานข้อมูลที่มีการอ้างอิงทั้งหมด ในขณะที่คำสั่ง Truncate จะลบทั้งหมดเท่านั้น แถวในตาราง และจะคงโครงสร้างตารางและข้อมูลอ้างอิงไว้

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

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