הצהרת MySQL DELETE משמשת להסרת רשומות מטבלת MySQL שאינן נדרשות עוד במסד הנתונים. שאילתה זו ב-MySQL מוחקת שורה מלאה מהטבלה ומפיקה את ספירת השורות שנמחקו . זה גם מאפשר לנו למחוק יותר מרשומה אחת מהטבלה בתוך שאילתה אחת, מה שמועיל תוך הסרת מספר רב של רשומות מטבלה. על ידי שימוש בהצהרת המחיקה, נוכל גם להסיר נתונים על סמך תנאים.
לאחר שנמחק את הרשומות באמצעות שאילתה זו, לא נוכל לשחזר אותה . לכן לפני מחיקת רשומות כלשהן מהטבלה, מומלץ לעשות זאת צור גיבוי של מסד הנתונים שלך . גיבויי מסד הנתונים מאפשרים לנו לשחזר את הנתונים בכל פעם שנצטרך אותם בעתיד.
תחביר:
להלן התחביר הממחיש כיצד להשתמש במשפט DELETE:
תאריך javascript
DELETE FROM table_name WHERE condition;
בהצהרה שלעיל, עלינו לציין תחילה את שם הטבלה שממנה אנו רוצים למחוק נתונים. שנית, עלינו לציין את התנאי למחיקת רשומות בסעיף WHERE , שהוא אופציונלי. אם נשמיט את פסקת WHERE במשפט, שאילתה זו תסיר רשומות שלמות מטבלת מסד הנתונים.
אם ברצוננו למחוק רשומות ממספר טבלאות באמצעות שאילתת DELETE אחת, עלינו להוסיף את ה לְהִצְטַרֵף סָעִיף עם ההצהרה DELETE.
אם ברצוננו למחוק את כל הרשומות מטבלה מבלי לדעת את ספירת השורות שנמחקו, עלינו להשתמש ב- קצץ טבלה אמירה שנותנת ביצועים טובים יותר.
תן לנו להבין כיצד פועלת הצהרת DELETE MySQL באמצעות דוגמאות שונות.
דוגמאות להצהרת MySQL DELETE
כאן, אנחנו הולכים להשתמש ב- 'עובדים' ו 'תַשְׁלוּם' טבלאות להדגמה של הצהרת DELETE. נניח שטבלאות העובדים והתשלומים מכילות את הנתונים הבאים:
אם נרצה למחוק עובד שלו emp_id הוא 107 , עלינו להשתמש במשפט DELETE עם סעיף WHERE. ראה את השאילתה למטה:
mysql> DELETE FROM Employees WHERE emp_id=107;
לאחר ביצוע השאילתה, הוא יחזיר את הפלט כמו בתמונה למטה. לאחר מחיקת הרשומה, אמת את הטבלה באמצעות המשפט SELECT :
אם נרצה למחוק את כל הרשומות מהטבלה, אין צורך להשתמש בסעיף WHERE עם המשפט DELETE. ראה את הקוד והפלט שלהלן:
בפלט לעיל, אנו יכולים לראות שלאחר הסרת כל השורות, טבלת העובדים תהיה ריקה. זה אומר שאין רשומות זמינות בטבלה שנבחרה.
MySQL DELETE ו-LIMIT סעיף
פסקת MySQL Limit משמשת להגבלת ספירת השורות שמחזירות מערך התוצאות, במקום להביא את כל הרשומות בטבלה. לפעמים אנחנו רוצים להגביל את מספר השורות שיימחקו מהטבלה; במקרה כזה, נשתמש ב- לְהַגבִּיל סעיף כדלקמן:
DELETE FROM table_name WHERE condition ORDER BY colm1, colm2, ... LIMIT row_count;
יש לציין שסדר השורות בטבלת MySQL אינו מוגדר. לכן, עלינו להשתמש תמיד ב- מיין לפי סעיף תוך שימוש בסעיף LIMIT.
לדוגמה , השאילתה הבאה ממיינת תחילה את העובדים לפי שמותיהם בסדר אלפביתי ומוחקת את שלושת העובדים הראשונים מהטבלה:
mysql> DELETE FROM Employees ORDER BY name LIMIT 3;
זה ייתן את הפלט שלהלן:
סעיף מחיקה והצטרפות של MySQL
הסעיף JOIN משמש להוספת שתי הטבלאות או יותר ב-MySQL. נוסיף את סעיף JOIN עם המשפט DELETE בכל פעם שנרצה למחוק רשומות ממספר טבלאות בתוך שאילתה אחת. ראה את השאילתה למטה:
mysql> DELETE Employees, Payment FROM Employees INNER JOIN Payment ON Employees.emp_id = Payment.emp_id WHERE Employees.emp_id = 102;
תְפוּקָה:
לאחר הביצוע, נראה את הפלט כמו בתמונה למטה:
לקריאת מידע נוסף על הצהרת DELETE עם סעיף JOIN, לחץ כאן .