הצהרת SQL DELETE
הצהרת SQL DELETE משמשת להסרת שורות ספציפיות מטבלה תוך שמירה על מבנה הטבלה ללא פגע. זה שונה מ-DROP שמוחק את כל הטבלה.
- זה מסיר שורות על סמך תנאים.
- שומר על אילוצי סכימת טבלה ואינדקסים.
- יכול למחוק שורה בודדת או את כל השורות.
דוּגמָה: ראשית נעשה לִיצוֹר בסיס נתונים וטבלה של SQL הדגמה עליהם נשתמש בפקודה SQL DELETE.
שְׁאֵלָה:
DELETE FROM Employees
WHERE EmployeeID = 5;תְפוּקָה:
![]()
- שאילתה זו מוחקת את השורה מטבלת העובדים שבה ה-EmployeeID הוא 5.
- רק הרשומה הספציפית הזו מוסרת; כל שאר השורות נשארות ללא שינוי.
תַחבִּיר:
DELETE FROM table_name
WHERE some_condition;
- Some_condition: תנאי המשמש לסינון השורות שברצונך למחוק.
- table_name: שם הטבלה ממנה ברצונך למחוק את השורות.
פֶּתֶק: אנו יכולים למחוק רשומות בודדות או מרובות באמצעות סעיף WHERE; אם זה מושמט, כל הרשומות בטבלה יוסרו.
דוגמאות להצהרת SQL DELETE
נניח שיצרנו טבלה בשם GFG_Employee ב-SQL המכילה את הפרטים האישיים של העובד כולל שם המזהה שלו מייל ומחלקה וכו' כפי שמוצג להלן.
CREATE TABLE GFG_Employees (
מזהה INT PRIMARY KEY
שם VARCHAR (20)
דוא"ל VARCHAR (25)
מחלקה VARCHAR(20)
);
INSERT INTO GFG_Employees (מזהה שם דוא"ל מחלקת) VALUES
(1 'ג'סי' '[email protected]' 'פיתוח')
(2 'Praveen' '[email protected]' 'HR')
(3 'Can' '[email protected]' 'מכירות')
(4 'Rithvik' '[email protected]' 'IT')
(5 'Suraj' '[email protected]' 'הבטחת איכות')
(6 'Om' '[email protected]' 'IT')
(7 'Naruto' '[email protected]' 'פיתוח');
בחר * מ-GFG_Employees
תְפוּקָה:
דוגמה 1: מחיקת רשומה בודדת
אנו יכולים להשתמש במשפט DELETE עם תנאי למחיקת שורה מסוימת מטבלה. ה אֵיפֹה סעיף מבטיח שרק הרשומה המיועדת תוסר. אנו יכולים למחוק את הרשומות בשם Rithvik באמצעות השאילתה הבאה:
שְׁאֵלָה:
DELETE FROM GFG_Employees
WHERE NAME = 'Rithvik';תְפוּקָה:
![]()
דוגמה 2: מחיקת רשומות מרובות
כדי למחוק מספר רשומות ניתן לציין תנאי התואם למספר שורות. בוא נמחק את השורות מהטבלה GFG_Employees שבה המחלקה היא 'פיתוח'. פעולה זו תמחק 2 שורות (השורה הראשונה והשורה השביעית).
שְׁאֵלָה:
DELETE FROM GFG_Employees
WHERE department = 'Development';תְפוּקָה
![]()
דוגמה 3: מחק את כל הרשומות מטבלה
אם אנחנו צריכים למחוק את כל הרשומות מהטבלה נוכל להשמיט את פסקת WHERE או לחילופין להשתמש במשפט DELETE עם כוכבית (*) כדי לציין את כל השורות.
שְׁאֵלָה:
DELETE FROM GFG_Employees;
Or
DELETE * FROM GFG_Employees;תְפוּקָה:
![]()
כל הרשומות בטבלה יימחקו, לא נותרו רשומות להצגה. הטבלה GFG_Employees תהפוך לריקה.
חזור אחורה פעולות מחיקה
מכיוון שהמשפט DELETE הוא פעולת DML ניתן להחזיר אותה לאחור כאשר היא מבוצעת במשפט. אם תמחק בטעות רשומות או צריך לחזור על התהליך, תוכל להשתמש ב- חזרה לאחור פְּקוּדָה.
שְׁאֵלָה:
START TRANSACTION;
DELETE FROM GFG_Employees WHERE department = 'Development';
-- If needed you can rollback the deletion
ROLLBACK;הֶסבֵּר: הפקודה ROLLBACK תבטל את השינויים שנעשו על ידי הצהרת DELETE ותשחזר למעשה את הרשומות שנמחקו במהלך העסקה.
צור חידון