PracticU

איפוס טבלאות ב-SQL

בלי כתוביותעם כתוביות
PracticU › קורס DBA אפליקטיבי - שפת SQL למתחילים › איפוס טבלאות ב-SQL
מילון מושגים:
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
DELETE - פקודת SQL למחיקת שורות מטבלה. גם שיטת HTTP לבקשת מחיקה של משאב בשרת.
רשומה - שורה בטבלת מסד נתונים שמרכזת את כל השדות של פריט אחד, למשל כל הפרטים של לקוח יחיד.
לוג - רישום מתועד של אירועים ופעולות שמתרחשים במערכת או בתוכנה, המשמש למעקב ולאיתור תקלות.

איפוס טבלאות ב-SQL
יש הבדל בין מחיקת שורות מטבלה לבין איפוס שלה. ההרצאה משווה בין Delete From ל-Truncate Table על טבלת Kittens, ומראה מה קורה למספור האוטומטי.
ההבדל בין המחיקות
1. מחיקת שורה: Delete From Kittens Where KittenID = 3 מוחקת שורה אחת. צריך קודם לעבור למסד cute kittens. אחרי הוספת חתול חדש (אוסקר), הוא לא מקבל את המזהה 3, כי המערכת לא חוזרת על מפתחות ראשיים שכבר יצרה.
2. מחיקת כל השורות: Delete From Kittens בלי Where מוחקת את כל הטבלה (שלוש רשומות הושפעו). אבל כשמוסיפים אחר כך רשומה, המזהה שלה הוא 5, כלומר המספור ממשיך מאיפה שעצר.
3. איפוס עם Truncate Table: מוחקת את כל הרשומות, ובנוסף מאפסת את המפתחות. אחרי הוספת ערכים חדשים המזהים מתחילים שוב מ-1, 2.
4. מהירות: פקודות Insert, Update ו-Delete נרשמות לקבצי לוג, אבל Truncate לא כותבת שום דבר ללוג ולכן מהירה יותר.
שימו לב
משתמשים ב-Truncate Table רק כשבאמת רוצים להחזיר את הטבלה למצבה המקורי ולאפס את המפתחות, ולא סתם למחוק שורות.
אפשר עכשיו לבחור נכון בין מחיקת שורות לבין איפוס מלא של טבלה.
השיעור הבא בקורס: יצירה ושימוש ב-SQL Views

פרקי ההרצאה: איפוס טבלאות ב-SQL

  1. 00:00

    מחיקת שורות עם DELETE

  2. 00:39

    מחיקת כל הרשומות בטבלה

  3. 01:20

    פקודת TRUNCATE TABLE

  4. 01:56

    TRUNCATE מאפס מפתחות ללא לוג

תמלול ההרצאה: איפוס טבלאות ב-SQL

הטקסט המלא של הדקות הראשונות בהרצאה «איפוס טבלאות ב-SQL» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    קיימת פקודה מאוד מעניינת שמאפשרת לאפס טבלה. יצרנו מקודם טבלת קיטנס ויש לה שלוש שורות. אם אנחנו באים ואומרים אנחנו רוצים להיפטר מאיזושהי שורה או מכל השורות זה יהיה delete from kittens.

  2. 00:19

    אם אני אומר לו where אז הוא מוחק לי שורה ספציפית בוא נגיד where kittenid=3 נריץ האמת קודם כל אנחנו צריכים להגיד לו להתמקד על cute kittens מעולה. אני רואה שהוא אומר לי שביצע את זה בואו נבצע איזשהו קונטרול r ונראה שהשורה נמחקה אבל אם אני אלך ואני אוסיף עכשיו עוד רשומה נניח בוא נוסיף את אוסקר החתול ונראה שהוא לא שם לנו את id3 והאמת שראינו את זה בעבר המערכת

  3. 00:51

    לא חוזרת על מפתחות ראשיים שהיא יצרה מה יקרה אם פשוט נגיד לו תשמע בוא תמחק את כל מה שיש delete from kittens כן, זה בלי לתת לו ID. ונראה שהוא אומר לי שלוש רשומות הושפעו מהפקודה הזאת ואם אנחנו מסתכלים אנחנו רואים שכל הטבלה כולה נמחקה אבל אם אני אוסיף כאן שוב פעם את קיוט מיצי בן 2 אנחנו נראה שהוא נתן לנו 5. בואו נוסיף סתם כמה ערכים ונראה את פקודת הטראנקייט.

  4. 01:26

    פקודת טראנקייט טייבל עושה כמה דברים. דבר ראשון היא אוטומטית מוחקת את כל הרשומות בואו נריץ את זה אנחנו רואים שהוא כתב לנו שזה עובד בואו נבצע קונטרול r ונראה באמת שהוא מחק הכל אבל היא עושה עוד כמה דברים דבר ראשון היא מאפסת מפתחות אם אני עכשיו כאן יוסיף ערכים אז אנחנו נראה שהמפתח מתחיל מ-1 שימו לב 1-2 דבר נוסף כאשר אנחנו מבצעים פקודות של insert update ו-delete

  5. 01:57

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

  6. 02:07

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

לקורס המלא: קורס SQL ו‑DBA אפליקטיבי

ההרצאה הקודמת: יצירת טבלאות ב-SQL

ההרצאה הבאה: יצירה ושימוש ב-SQL Views

הרצאות קשורות מקורסים אחרים

  • מבנה טבלאות
  • איפוס סיסמה של אדמיניסטרטור ב-Windows 10
  • איפוס סיסמה על ידי משתמש ב-Windows 10
  • שימוש ב-Cache עבור טבלאות של MySQL

קורסים נוספים במסלול

  • קורס NoSQL - MongoDB
  • קורס SSIS
  • קורס BI - ניתוח מסדי נתונים - Qlik Sense
  • קורס Power BI