ההבדל בין Truncate and Delete ההבדל בין

Anonim

יצירת נתונים מניפולציה מהווים את הבסיס של מסדי נתונים ואנחנו קוראים לזה DDL ו DML בהתאמה. DDL הוא קיצור של שפת הגדרות הנתונים. זה יכול ליצור או לשנות את מבני הנתונים במסדי נתונים והם לא יכלו לשמש כדי לשנות את הנתונים הקיימים על השולחנות. לדוגמה, יש לנו פקודות פשוט ליצור טבלה עם תכונות הטבלה שצוין אבל זה אף פעם לא מוסיף שורות לתוך הטבלה. אבל DML, Data Manipulation Language, מסוגל להוסיף, למחוק או לשנות נתונים בטבלאות. ככלל, פקודות DDL עוסקת במבני הטבלה ואילו פקודות DML עוסקות בנתונים עצמם. תן לזה להיות, למה אנחנו פשוט לסטות מן הנושא "ההבדל בין לחתוך למחיקה"? יש סיבות שדיברנו על DML ועל DDL. אתה תביני את זה בדיון הבא.

-> ->

מהי פקודה מקוצצת?

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

התחביר של חתך:

TRUNCATE טבלה שם טבלה ;

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

להלן טבלה "עובד" ופשוט להסתכל על שורות הנתונים בו.

emp-id emp-name ייעוד
1011 ג'ק פקידה
1012 רוזי Admin
1014 ננסי > האוצר
עכשיו, תן לנו להוציא את הפקודה הבאה על השולחן עובד.

TRUNCATE טבלה

עובד; הנה תוצאה של התחביר הנ"ל ואין בו נתונים.

emp-id

emp-name ייעוד מהו פקודת Delete?

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

מחק

עובד; התחביר הנ"ל מוחק את כל השורות בטבלה 'עובד'. אז השולחן המתקבל לא יכיל נתונים.

מחק מ

עובד WHERE emp-id = 1011; הצהרה זו רק מוחקת שורה אחת שמזהה ה- emp שלה הוא 1011. לכן הטבלה הנוצרת תהיה כדלקמן.

emp-id

emp-name ייעוד 1012
רוזי Admin 1014
ננסי האוצר הבדלים:

Truncate הוא DDL; מחק הוא DML:

  • דנו לעיל כיצד DDL ו- DML לעבוד בדיון לעיל.הפקודה Truncate היא DDL והיא פועלת ברמת מבנה הנתונים. אבל מחק הוא פקודת DML והוא פועל על נתוני הטבלה. דוגמאות אחרות עבור DDL הם ליצור ו ALTER. באופן דומה, נוכל לומר שהפקודות כגון SELECT, UPDATE ו- REPLACE הן דוגמאות מושלמות עבור DML. כיצד פועל הקטע והמחיקה:
  • ברגע שאנו מוציאים את הפקודה Truncate, הוא פשוט מחפש את הטבלה שצוינה. אז זה מסיר לחלוטין את כל הנתונים מהזיכרון. אבל נוהל העבודה הוא שונה במקצת במקרה של מחיקה. כאן, נתוני הטבלה המקורית מועתקים לחלל הנקרא "רול חזרה" שטח לפני ביצוע מניפולציה נתונים בפועל. לאחר מכן השינויים נעשים על שטח הנתונים השולחן בפועל. אז, שניהם שונים זה מזה באופן שבו הם עובדים. לקצץ

-> להסיר את כל הנתונים מהטבלה -> שטח השולחן משוחרר עכשיו. מחק

-> העתק את נתוני הטבלה המקורית ל - Roll Back space -> מחק את הנתונים שצוינו / את הטבלה כולה -> שטח השולחן משוחרר, אך שטח המילוי האחורי מתמלא. גלגל חזרה:

  • גלילה אחורה היא כמו פקודה בטל באביזרים של Microsoft שלנו. הוא משמש כדי לבטל את השינויים שעשינו לאחרונה i. ה. מהנקודה האחרונה שנשמרה. כדי לבצע את הפעולה, יש להעתיק את הנתונים לחלל רול חזרה לפני עריכתו. למרות אלה גב רול דורשים את הזיכרון הנוסף, הם מאוד שימושי לחזור המקורי. במיוחד, כאשר אתה עורך כמה בטעות! בואו ניגש לקיצוץ ולמחוק ביחס לגלגל בחזרה עכשיו. כפי שציינו לעיל, Truncate אף פעם לא משתמשת שטח אחורה ולא יכולנו לחזור אל הנתונים המקוריים. אך הפקודה 'מחק' משתמשת בחלל אחורה, ויכולנו להשתמש ב'תחייב 'או' RollBack 'כדי לקבל או לבטל את השינויים בהתאמה. מפעילים:
  • למי צריך הסבר על טריגרים, הנה הערה קטנה. מפעילים הם קבוצה מוגדרת מראש של פעולות / פעולה, כי צריך להיות מופעל כאשר השולחן נתקל במצב מסוים. לדוגמה, אנו יכולים להפעיל שינוי סכום השכר כאשר ניסיון של העובד עם החברה הוא יותר משנה. טריגרים אלה יכולים לעבוד על טבלאות אחרות גם כן. לדוגמה, אנו יכולים לעדכן את הטבלה האוצר ברגע טיול ב שכר נעשה עבור עובד. חתוך הוא פקודה DDL, ההדק אינו מותר כאן. אבל מחיקה היא פקודה DML, מפעילים מותר כאן.

מהו מהר יותר?

  • כפי שניחשת, הפקודה 'חיתוך' תהיה מהירה יותר מהפקודה 'מחק'. הראשון יכול להסיר את כל הנתונים ואין צורך לבדוק את תנאי ההתאמה. כמו כן, הנתונים המקוריים לא מועתקים לחזרה למצב החזרה וזה חוסך הרבה זמן. שני גורמים אלה גורמים ל- Truncate לעבוד מהר יותר מהמחק. האם נוכל להשתמש בפסקה WHERE?
  • הקטע 'היכן' משמש לציון תנאי התאמה מסוימים, והוא אינו קשור ל- Truncate. כמו Truncate אף פעם לא מחפש כל תנאי ההתאמה וזה רק מסיר את כל השורות, אנחנו לא יכולים להשתמש בסעיף 'איפה' כאן.אבל נוכל תמיד לציין את המצב בעזרת סעיף 'where' בפקודה 'מחק'. איזה שטח גדול יותר?
  • הקיצוץ לא ישתמש בחלל החזרה ויחסוך את הזיכרון. אבל למחוק צריך גיבוי בצורה של שטח החזרה, ולכן הוא דורש שטח זיכרון יותר מאשר לחתוך. אז אלה ההבדלים ותן לנו להסתכל בצורה טבלאית.

S. לא

הבדלים ב חתוך מחק 1.
DDL או DML? זהו DDL והיא פועלת ברמת מבנה הנתונים. דוגמאות אחרות עבור DDL הם ליצור ו ALTER. זוהי פקודת DML והיא פועלת על נתוני הטבלה. DML מייצג שפה מניפולציה נתונים. הפקודות כגון SELECT, UPDATE ו- REPLACE הן דוגמאות מושלמות עבור DML. DML מייצג שפה מניפולציה נתונים.

2.

איך זה עובד? ברגע שאנו מוציאים את הפקודה Truncate, זה רק מחפש את הטבלה שצוין. אז זה מסיר לחלוטין את כל הנתונים מהזיכרון. כאן, נתוני הטבלה המקוריים מועתקים לחלל הנקרא 'רול חזרה' לפני ביצוע מניפולציה של נתונים בפועל. לאחר מכן השינויים נעשים על שטח הנתונים השולחן בפועל. 3.
RollBack הפקודה Truncate לעולם לא משתמשת בחלל אחורה ולא הצלחנו לחזור אל הנתונים המקוריים. שטח רולבק הוא אחד בלעדי והוא תפוס כאשר פקודות DML מונפקות. הפקודה 'מחק' משתמשת בחלל אחורה, ויכולנו פשוט להשתמש ב- 'Commit' או 'RollBack' כדי לקבל או לבטל את השינויים בהתאמה. 4.

מפעילים חתוך הוא פקודה DDL, מפעילה אינם מותרים. מחק הוא פקודת DML, מפעילים מותרים כאן. 5.

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

6.
האם נוכל להשתמש בפסקה WHERE? כפי Truncate אף פעם לא מחפש כל תנאי ההתאמה וזה פשוט מסיר את כל השורות, אנחנו לא יכולים להשתמש בסעיף 'איפה' כאן. אבל תמיד נוכל לציין את המצב בעזרת סעיף 'where' בפקודה 'מחק'. 7.
איזה שטח גדול יותר? הקיצוץ לא ישתמש בחלל החזרה ויחסוך את הזיכרון. זה צריך גיבוי בצורה של שטח החזרה, ולכן הוא דורש שטח זיכרון יותר מאשר לחתוך. לדעת את ההבדלים בין כל שתי ישויות מרחיב את הידע על שניהם! יש לך נחת על הנתיב הנכון אני. ה. את דף האינטרנט כדי להבין את ההבדלים, במיוחד, בין לחתוך את פקודות למחוק. מקווה שאתה עכשיו ברור עם ההבדלים שלה ותודיע לנו אם היינו עזר לך להבין את זה. אתה יכול גם לעזור לנו להצביע על אשר נותר!