logo

הצהרת SQL DELETE

הצהרת SQL DELETE משמשת להסרת שורות ספציפיות מטבלה תוך שמירה על מבנה הטבלה ללא פגע. זה שונה מ-DROP שמוחק את כל הטבלה.

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

דוּגמָה: ראשית נעשה לִיצוֹר בסיס נתונים וטבלה של SQL הדגמה עליהם נשתמש בפקודה SQL DELETE.

של' title=

שְׁאֵלָה:



DELETE FROM Employees  
WHERE EmployeeID = 5;

תְפוּקָה:

גיל מיה חליפה
נמחק-שורה-' loading='lazy' title=
  • שאילתה זו מוחקת את השורה מטבלת העובדים שבה ה-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

תְפוּקָה:

GFG_employee' loading='lazy' title=

דוגמה 1: מחיקת רשומה בודדת

אנו יכולים להשתמש במשפט DELETE עם תנאי למחיקת שורה מסוימת מטבלה. ה אֵיפֹה סעיף מבטיח שרק הרשומה המיועדת תוסר. אנו יכולים למחוק את הרשומות בשם Rithvik באמצעות השאילתה הבאה:

שְׁאֵלָה:

מוסכמות שמות ב-java
DELETE FROM GFG_Employees   
WHERE NAME = 'Rithvik';

תְפוּקָה:

מידע שנמחק' loading='lazy' title=

דוגמה 2: מחיקת רשומות מרובות

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

שְׁאֵלָה:

DELETE FROM GFG_Employees   
WHERE department = 'Development';

תְפוּקָה

מַחלָקָה' loading='lazy' title=

דוגמה 3: מחק את כל הרשומות מטבלה

אם אנחנו צריכים למחוק את כל הרשומות מהטבלה נוכל להשמיט את פסקת WHERE או לחילופין להשתמש במשפט DELETE עם כוכבית (*) כדי לציין את כל השורות.

שְׁאֵלָה:

DELETE FROM GFG_Employees;  
Or
DELETE * FROM GFG_Employees;

תְפוּקָה:

רֵיק' loading='lazy' title=

כל הרשומות בטבלה יימחקו, לא נותרו רשומות להצגה. הטבלה GFG_Employees  תהפוך לריקה.

תכנות stdin c

חזור אחורה פעולות מחיקה

מכיוון שהמשפט DELETE הוא פעולת DML ניתן להחזיר אותה לאחור כאשר היא מבוצעת במשפט. אם תמחק בטעות רשומות או צריך לחזור על התהליך, תוכל להשתמש ב- חזרה לאחור פְּקוּדָה.

שְׁאֵלָה:

START TRANSACTION;  
DELETE FROM GFG_Employees WHERE department = 'Development';
-- If needed you can rollback the deletion
ROLLBACK;

הֶסבֵּר: הפקודה ROLLBACK תבטל את השינויים שנעשו על ידי הצהרת DELETE ותשחזר למעשה את הרשומות שנמחקו במהלך העסקה.

צור חידון