הבדל בין מחיקה לקטוע

הבדל בין מחיקה לקטוע
הבדל בין מחיקה לקטוע

וִידֵאוֹ: הבדל בין מחיקה לקטוע

וִידֵאוֹ: הבדל בין מחיקה לקטוע
וִידֵאוֹ: SSH vs TLS vs SSL 2024, נוֹבֶמבֶּר
Anonim

מחק לעומת קיצור

שתי הפקודות SQL (Structure Query Language), Delete ו-Truncate משמשות כדי להיפטר מנתונים המאוחסנים בטבלאות במסד נתונים. Delete היא הצהרת DML (Data Manipulation Language) והיא מסירה חלק מהשורות בטבלה או את כל השורות שלה. 'סעיף Where' משמש לציון השורות שנדרש למחוק, ואם לא נעשה שימוש בסעיף Where עם משפט Delete, הוא מסיר את כל הנתונים בטבלה. Truncate היא הצהרת DDL (Data Definition Language), והיא מסירה נתונים שלמים מהטבלה. שתי הפקודות הללו אינן הורסות את מבנה הטבלה ואת ההפניות לטבלה, ורק הנתונים מוסרים לפי הצורך.

מחק הצהרה

הצהרת Delete מאפשרת למשתמש להסיר נתונים מטבלה קיימת במסד נתונים על סמך תנאי שצוין, וה-'Where clause' משמש לקביעת תנאי זה. הפקודה Delete מכונה ביצוע מתועד, מכיוון שהיא מוחקת רק שורה אחת בכל פעם, ושומרת ערך עבור כל מחיקת שורה ביומן העסקאות. אז זה גורם להאט את הפעולה. Delete היא הצהרת DML, ולכן היא אינה מחויבת אוטומטית בזמן ביצוע הפקודה. לכן, ניתן להחזיר את פעולת המחיקה לאחור כדי לגשת שוב לנתונים, במידת הצורך. לאחר ביצוע הפקודה Delete, יש לבצע אותה או להחזיר אותה לאחור כדי לשמור שינויים לצמיתות. הצהרת Delete אינה מסירה את מבנה הטבלה של הטבלה ממסד הנתונים. כמו כן, הוא אינו מקצה את שטח הזיכרון המשמש את הטבלה.

התחביר הטיפוסי לפקודת Delete מצוין להלן.

DELETE FROM

או

DELETE FROM WHERE

הצהרת קצוץ

הצהרת Truncate מסירה את כל הנתונים מטבלה קיימת במסד נתונים, אבל היא משמרת את אותו מבנה טבלה, גם את אילוצי השלמות, הרשאות הגישה והקשרים לטבלאות אחרות. לכן, אין צורך להגדיר שוב את הטבלה, וניתן להשתמש במבנה הטבלה הישן, אם המשתמש רוצה לעשות שוב שימוש חוזר בטבלה. Truncate מסיר את הנתונים המלאים על ידי ביטול הקצאת דפי הנתונים המשמשים לשמירת הנתונים, ורק הקצאות הדפים הללו נשמרות ביומן העסקאות. לכן, פקודת קטיעה משתמשת רק בפחות משאבי מערכת ויומן טרנזקציות לתפעול, כך שהיא מהירה יותר מפקודות קשורות אחרות. Truncate היא פקודת DDL, ולכן היא משתמשת בהתחייבויות אוטומטיות לפני ואחרי ביצוע ההצהרה. לפיכך, קיצור לא יכול להחזיר את הנתונים לאחור בשום אופן. זה משחרר שטח זיכרון המשמש את הטבלה לאחר הביצוע. אבל לא ניתן להחיל הצהרת Truncate על הטבלאות שאליהם מתייחסים אילוצי מפתח זר.

להלן הוא התחביר הנפוץ להצהרת Truncate.

TRUNCATE TABLE

מה ההבדל בין Delete לבין Truncate?

1. פקודות Delete and Truncate מסירות נתונים מטבלאות קיימות במסד נתונים מבלי לפגוע במבנה הטבלה או בהפניות אחרות לטבלה.

2. עם זאת, ניתן להשתמש בפקודה Delete כדי למחוק שורות ספציפיות רק בטבלה תוך שימוש בתנאי רלוונטי, או למחיקת כל השורות ללא כל תנאי, בעוד שהפקודה Truncate יכולה לשמש רק למחיקת נתונים שלמים בטבלה.

3. Delete היא פקודת DML, והיא יכולה להחזיר את הפעולה לאחור במידת הצורך, אבל Truncate היא פקודת DDL, כך שזוהי הצהרת commit אוטומטית ולא ניתן לבטל אותה בשום אופן. לכן חשוב להשתמש בפקודה זו בזהירות בניהול מסדי נתונים.

4. פעולת הקטיעה צורכת פחות משאבי מערכת ומשאבי יומן עסקאות מאשר פעולת המחיקה, לכן, קטיעה נחשבת למהירה יותר ממחיקה.

5. כמו כן, Delete לא מקצה שטח המשמש את הטבלה, בעוד Truncate משחרר את השטח שבו נעשה שימוש לאחר ביצוע, כך Delete אינו יעיל במקרה של מחיקת כל הנתונים מטבלת מסד נתונים.

6. עם זאת, אסור להשתמש ב-Truncate כאשר הטבלה מופנית באמצעות אילוץ מפתח זר, ובמקרה זה, ניתן להשתמש בפקודה Delete במקום Truncate.

7. לבסוף, לשתי הפקודות הללו יש יתרונות וגם חסרונות ביישום שלהן במערכות ניהול מסדי נתונים והמשתמש צריך להיות מודע לשימוש בפקודות אלו כראוי כדי להשיג תוצאות טובות.

מוּמלָץ: