ความแตกต่างระหว่างการตัดและลบ ความแตกต่างระหว่าง
การสร้างและจัดการข้อมูลเป็นพื้นฐานของฐานข้อมูลและเราเรียกว่า DDL และ DML ตามลำดับ DDL เป็นคำย่อของภาษาคำจำกัดความของข้อมูล มันอาจจะสร้างหรือปรับเปลี่ยนโครงสร้างข้อมูลในฐานข้อมูลและพวกเขาไม่สามารถใช้ในการเปลี่ยนแปลงข้อมูลที่มีอยู่ในตาราง ตัวอย่างเช่นเรามีคำสั่งที่เพิ่งสร้างตารางที่มีแอตทริบิวต์ตารางที่ระบุ แต่จะไม่เพิ่มแถวใด ๆ ลงในตาราง แต่ DML, Data Manipulation Language สามารถเพิ่มลบหรือปรับเปลี่ยนข้อมูลในตารางได้ ตามกฎทั่วไปคำสั่ง DDL เกี่ยวข้องกับโครงสร้างตารางในขณะที่คำสั่ง DML เกี่ยวข้องกับข้อมูลจริง ให้มันเป็นไปทำไมเราเพียงแค่เบี่ยงเบนไปจากหัวข้อ "ความแตกต่างระหว่างตัดและลบ"? มีเหตุผลที่เราพูดถึง DML และ DDL คุณจะเข้าใจในการอภิปรายมาก่อน
คำสั่ง Truncate คืออะไร?
วัตถุประสงค์ของคำสั่ง Truncate คือการลบตารางทั้งหมด ดังนั้นเมื่อคุณใช้คำสั่ง Truncate คุณจะสูญเสียข้อมูลทั้งหมดในตารางและคุณควรระมัดระวังในการใช้งาน แจ้งให้เราทราบว่าจะใช้อย่างไร
ไวยากรณ์ของ Truncate:
TRUNCATE TABLE ชื่อตาราง ;
ที่นี่คุณควรระบุชื่อของตารางที่ควรจะลบออกทั้งหมด เพื่อให้แน่ใจว่าจะมีโต๊ะนั่งอยู่ในพื้นที่หน่วยความจำ นี่คือตัวอย่างของการใช้ Truncate
ด้านล่างนี้เป็นตาราง 'พนักงาน' และดูที่แถวข้อมูลที่อยู่ด้านล่าง
EMP-ID | EMP-ชื่อ | แต่งตั้ง |
1011 | แจ็ค | เสมียน |
1012 | กุหลาบ | ผู้ดูแลระบบ |
1014 | แนนซี่ > การเงิน | |
พนักงานตัดตาราง
; นี่คือผลลัพธ์ของไวยากรณ์ข้างต้นและไม่มีข้อมูลอยู่ในนั้น
emp-id
ชื่อ emp-name | การกำหนด | คำสั่งลบคืออะไร? |
วัตถุประสงค์ของคำสั่ง Delete คือการลบแถวที่ระบุออกจากตาราง ที่นี่ใช้วลี 'Where' เพื่อระบุแถวที่ต้องการลบ เมื่อเราไม่ระบุแถวคำสั่งจะลบแถวทั้งหมดในตาราง เพียงแค่ดูรูปแบบของมัน
ลบจาก
พนักงาน; ไวยากรณ์ข้างต้นจะลบแถวทั้งหมดออกจากตาราง 'employee' ดังนั้นตารางผลลัพธ์จะไม่มีข้อมูล
ลบจาก
พนักงาน ที่ emp-id = 1011; คำสั่งนี้เพียงแค่ลบแถวเดียวที่มี emp-id คือ 1011 ดังนั้นตารางผลลัพธ์จะเป็นดังนี้
emp-id
emp-name | การกำหนด | 1012 |
Rosy | ผู้ดูแลระบบ | 1014 |
แนนซี | ความแตกต่างทางการเงิน |
DDL; ลบคือ DML:
- เราได้กล่าวถึงวิธีการที่ DDL และ DML ทำงานในการสนทนาข้างต้นของเราคำสั่ง Truncate คือ DDL และทำงานในระดับโครงสร้างข้อมูล แต่ลบเป็นคำสั่ง DML และทำงานกับข้อมูลตาราง ตัวอย่างอื่น ๆ สำหรับ DDL คือ CREATE และ ALTER ในลักษณะเดียวกันเราอาจพูดได้ว่าคำสั่งเช่น SELECT, UPDATE และ REPLACE เป็นตัวอย่างที่สมบูรณ์แบบสำหรับ DML การตัดทอนและลบทำงานอย่างไร:
- ทันทีที่เราออกคำสั่ง Truncate เพียงแค่มองหาตารางที่ระบุ จากนั้นจะลบข้อมูลทั้งหมดออกจากหน่วยความจำ แต่ขั้นตอนการทำงานจะแตกต่างกันเล็กน้อยในกรณีของ Delete ที่นี่ข้อมูลตารางต้นฉบับถูกคัดลอกไปยังพื้นที่ที่เรียกว่าพื้นที่ 'ย้อนกลับ' ก่อนที่จะทำการจัดการข้อมูลจริง จากนั้นการปรับเปลี่ยนจะทำในพื้นที่ข้อมูลตารางจริง ดังนั้นทั้งสองต่างกันในวิธีที่พวกเขาทำงาน ตัดทอน
-> ลบข้อมูลทั้งหมดออกจากตาราง -> พื้นที่ตารางว่างตอนนี้ ลบ
-> คัดลอกข้อมูลตารางต้นฉบับไปยังพื้นที่ Roll Back -> ลบข้อมูลที่ระบุ / ตารางทั้งหมด -> พื้นที่ตารางว่าง แต่เต็มพื้นที่ Roll Back ย้อนกลับ:
- ย้อนกลับเป็นเหมือนคำสั่งเลิกทำในอุปกรณ์เสริม Microsoft ของเรา ใช้เพื่อยกเลิกการเปลี่ยนแปลงที่เราได้ทำเมื่อเร็ว ๆ นี้ i. อี จากจุดที่บันทึกไว้ล่าสุด เพื่อทำดำเนินการข้อมูลควรจะคัดลอกไปยังพื้นที่ Roll Back ก่อนที่จะทำการแก้ไข แม้ว่าโรลแบ็คเหล่านี้จะต้องมีหน่วยความจำเพิ่มเติม แต่ก็มีประโยชน์อย่างมากในการกลับไปใช้ต้นฉบับ โดยเฉพาะอย่างยิ่งเมื่อคุณแก้ไขโดยไม่ได้ตั้งใจ! ให้เรามาตัดทอนและลบด้วยความเคารพต่อการย้อนกลับตอนนี้ ดังที่เราได้กล่าวไว้ข้างต้น Truncate ไม่เคยใช้พื้นที่สำหรับย้อนกลับและเราไม่สามารถกลับไปที่ข้อมูลเดิมได้ แต่คำสั่ง Delete ใช้พื้นที่ถอยหลังและเราสามารถใช้ 'Commit' หรือ 'Rollback' เพื่อยอมรับหรือยกเลิกการเปลี่ยนแปลงตามลำดับ Triggers:
- สำหรับผู้ที่ต้องการคำอธิบายเกี่ยวกับทริกเกอร์นี่เป็นข้อสังเกตเล็กน้อย ทริกเกอร์คือชุดปฏิบัติการ / การดำเนินการที่กำหนดไว้ล่วงหน้าที่ควรจะเปิดใช้งานเมื่อตารางพบเงื่อนไขเฉพาะ ตัวอย่างเช่นเราอาจทำให้เกิดการเปลี่ยนแปลงจำนวนเงินเดือนเมื่อพนักงานมีประสบการณ์กับ บริษัท มากกว่าหนึ่งปี ทริกเกอร์เหล่านี้สามารถใช้กับตารางอื่นได้เช่นกัน ตัวอย่างเช่นเราสามารถอัปเดตตารางทางการเงินได้ทันทีที่มีการปรับขึ้นเงินเดือนสำหรับพนักงาน Truncate เป็นคำสั่ง DDL ไม่อนุญาตให้ทริกเกอร์ทำงานที่นี่ แต่ลบเป็นคำสั่ง DML คุณสามารถเรียกใช้ทริกเกอร์ได้ที่นี่
ซึ่งเร็วกว่านี้?
- ตามที่คุณคาดเดาคำสั่ง Truncate จะเร็วกว่าคำสั่ง Delete ก่อนหน้านี้อาจลบข้อมูลทั้งหมดออกและไม่จำเป็นต้องตรวจสอบเงื่อนไขการจับคู่ใด ๆ นอกจากนี้ข้อมูลต้นฉบับจะไม่ถูกคัดลอกไปยังพื้นที่ rollback และจะช่วยประหยัดเวลาได้มาก ทั้งสองปัจจัยทำให้ Truncate ทำงานได้เร็วกว่า Delete เราสามารถใช้คำสั่ง WHERE ได้หรือไม่?
- ประโยค 'Where' ถูกใช้เพื่อระบุเงื่อนไขการจับคู่บางอย่างและไม่มีอะไรให้กับ Truncate เนื่องจาก Truncate ไม่เคยมองหาเงื่อนไขการจับคู่ใด ๆ และลบแถวทั้งหมดออกไปเราไม่สามารถใช้คำสั่ง 'Where' ที่นี่ได้แต่เราสามารถระบุเงื่อนไขได้เสมอด้วยความช่วยเหลือของคำว่า 'where' ในคำสั่ง Delete ซึ่งใช้พื้นที่มากขึ้น?
- การตัดทอนจะไม่ใช้พื้นที่การย้อนกลับและจะช่วยประหยัดหน่วยความจำนั้น แต่ลบต้องมีการสำรองข้อมูลในรูปแบบของพื้นที่การกู้คืนและด้วยเหตุนี้จึงต้องใช้พื้นที่หน่วยความจำมากกว่าการตัดทอน นี่คือความแตกต่างและให้เราดูในรูปแบบตาราง
S ไม่
ความแตกต่างใน | ตัด | ลบ | 1. |
DDL หรือ DML? | เป็น DDL และทำงานในระดับโครงสร้างข้อมูล ตัวอย่างอื่น ๆ สำหรับ DDL คือ CREATE และ ALTER | เป็นคำสั่ง DML และทำงานบนข้อมูลตาราง DML ย่อมาจาก Data Manipulation Language คำสั่งเช่น SELECT, UPDATE และ REPLACE เป็นตัวอย่างที่สมบูรณ์แบบสำหรับ DML DML ย่อมาจาก Data Manipulation Language |
2 |
มันทำงานอย่างไร? | ทันทีที่เราออกคำสั่ง Truncate เพียงแค่มองหาตารางที่ระบุ จากนั้นจะลบข้อมูลทั้งหมดออกจากหน่วยความจำ | ที่นี่ข้อมูลตารางต้นฉบับจะถูกคัดลอกไปยังพื้นที่ที่เรียกว่าพื้นที่ 'ย้อนกลับ' ก่อนทำการจัดการข้อมูลจริง จากนั้นการปรับเปลี่ยนจะทำในพื้นที่ข้อมูลตารางจริง | 3 |
ย้อนกลับ | คำสั่ง Truncate ไม่เคยใช้พื้นที่สำหรับย้อนกลับและเราไม่สามารถกลับไปที่ข้อมูลเดิมได้ พื้นที่การถอยกลับเป็นพื้นที่พิเศษและถูกครอบครองเมื่อมีการออกคำสั่ง DML | คำสั่ง Delete ใช้พื้นที่ถอยหลังและเราสามารถใช้ 'Commit' หรือ 'Rollback' เพื่อยอมรับหรือยกเลิกการเปลี่ยนแปลงตามลำดับ | 4 |
Triggers | Truncate เป็นคำสั่ง DDL ไม่อนุญาตให้ทริกเกอร์ | ลบเป็นคำสั่ง DML อนุญาตให้ใช้ทริกเกอร์ได้ที่นี่ | 5 |
ซึ่งเร็วกว่านี้? | อาจลบข้อมูลทั้งหมดและไม่จำเป็นต้องตรวจสอบเงื่อนไขการจับคู่ใด ๆ นอกจากนี้ข้อมูลต้นฉบับจะไม่ถูกคัดลอกไปยังพื้นที่ rollback และจะช่วยประหยัดเวลาได้มาก ทั้งสองปัจจัยทำให้ Truncate ทำงานได้เร็วกว่า Delete | ใช้พื้นที่ว่างในการย้อนกลับและต้องเก็บรักษาข้อมูลเดิมไว้เสมอ นี่เป็นภาระพิเศษและในทางกลับกันต้องใช้เวลามากกว่า Truncate มาก | 6 |
เราสามารถใช้คำสั่ง WHERE ได้หรือไม่? | เนื่องจาก Truncate ไม่เคยมองหาเงื่อนไขการจับคู่ใด ๆ และจะลบแถวทั้งหมดออกไปเราไม่สามารถใช้คำสั่ง 'Where' ที่นี่ได้ | แต่เราสามารถระบุเงื่อนไขได้เสมอด้วยความช่วยเหลือของ 'where' ในคำสั่ง Delete | 7 |
ซึ่งใช้พื้นที่มากขึ้น? | การตัดทอนจะไม่ใช้พื้นที่การย้อนกลับและจะช่วยประหยัดหน่วยความจำนั้น | ต้องมีการสำรองข้อมูลในรูปแบบของพื้นที่ Rollback และด้วยเหตุนี้จึงต้องใช้พื้นที่หน่วยความจำมากกว่าการตัดทอน | การรู้ความแตกต่างระหว่างหน่วยงานทั้งสองจะขยายความรู้ทั้งสองอย่าง! คุณได้เข้าสู่เส้นทางที่ถูกต้อง i. อี หน้าเว็บเพื่อทำความเข้าใจความแตกต่างโดยเฉพาะอย่างยิ่งระหว่างคำสั่งตัดและลบ หวังว่าคุณจะมีความแตกต่างและแจ้งให้เราทราบหากเราช่วยให้คุณเข้าใจ นอกจากนี้คุณยังสามารถช่วยให้เราชี้ออกที่เหลือ! |