הצהרת 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 באמצעות השאילתה הבאה:
שְׁאֵלָה:
מוסכמות שמות ב-java
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 תהפוך לריקה.
תכנות stdin c
חזור אחורה פעולות מחיקה
מכיוון שהמשפט DELETE הוא פעולת DML ניתן להחזיר אותה לאחור כאשר היא מבוצעת במשפט. אם תמחק בטעות רשומות או צריך לחזור על התהליך, תוכל להשתמש ב- חזרה לאחור פְּקוּדָה.
שְׁאֵלָה:
START TRANSACTION;
DELETE FROM GFG_Employees WHERE department = 'Development';
-- If needed you can rollback the deletion
ROLLBACK;
הֶסבֵּר: הפקודה ROLLBACK תבטל את השינויים שנעשו על ידי הצהרת DELETE ותשחזר למעשה את הרשומות שנמחקו במהלך העסקה.
צור חידון