ההבדל בין מחיקה לקצץ

Anonim

מחק לעומת לחתוך

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

-> ->

מחיקת משפט

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

תחביר אופייני למחיקת הפקודה מצוין בהמשך.

DELETE FROM

או

DELETE From WHERE

הצהרה חתוך

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

להלן תחביר נפוץ עבור משפט חתוך.

TRUNCATE TABLE

מה ההבדל בין מחיקה לקיצוץ?

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

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

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

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

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

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

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