SQL операторът DELETE се използва за премахване на определени редове от таблица, като същевременно запазва структурата на таблицата непокътната. Различава се от DROP, който изтрива цялата таблица.
- Той премахва редове въз основа на условия.
- Запазва ограниченията и индексите на схемата на таблицата.
- Може да изтрие един ред или всички редове.
Пример: Първо ще го направим създавам демонстрационна SQL база данни и таблица, върху която ще използваме командата SQL DELETE.
Запитване:
pyspark
DELETE FROM Employees
WHERE EmployeeID = 5;
Изход:
- Тази заявка изтрива реда от таблицата Employees, където EmployeeID е 5.
- Премахва се само този конкретен запис; всички останали редове остават непроменени.
Синтаксис:
DELETE FROM table_name
WHERE some_condition;
- Някакво_условие: Условие, използвано за филтриране на редовете, които искате да изтриете.
- име_на_таблица: Името на таблицата, от която искате да изтриете редовете.
Забележка: Можем да изтрием единични или множество записи с помощта на клаузата WHERE; ако е пропуснато, всички записи в таблицата се премахват.
Примери за оператор SQL DELETE
Да приемем, че сме създали таблица с име GFG_Employee в SQL, която съдържа личните данни на служителя, включително тяхното име на идентификатор, имейл и отдел и т.н., както е показано по-долу.
СЪЗДАВАНЕ НА ТАБЛИЦА GFG_Служители (
id INT ПЪРВИЧЕН КЛЮЧ
име VARCHAR (20)
имейл VARCHAR (25)
отдел VARCHAR(20)
);
INSERT INTO GFG_Employees (идентификатор име имейл отдел) СТОЙНОСТИ
(1 'Jessie' '[email protected]' 'Развитие')
(2 'Praveen' '[email protected]' 'HR')
(3 „Може“ „[email protected]“ „Продажби“)
(4 'Rithvik' '[email protected]' 'IT')
(5 'Suraj' '[email protected]' 'Осигуряване на качеството')
(6 'Om' '[email protected]' 'IT')
(7 'Наруто' '[email protected]' 'Развитие');
Изберете * От GFG_Employees
Изход:
Пример 1: Изтриване на единичен запис
Можем да използваме оператора DELETE с условие за изтриване на определен ред от таблица. The КЪДЕ клауза гарантира, че само желаният запис е премахнат. Можем да изтрием записите с име 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
Тъй като операторът DELETE е DML операция, той може да бъде върнат назад, когато се изпълни в израз. Ако случайно изтриете записи или трябва да повторите процеса, можете да използвате ВЪРТАНЕ команда.
Запитване:
START TRANSACTION;
DELETE FROM GFG_Employees WHERE department = 'Development';
-- If needed you can rollback the deletion
ROLLBACK;
Обяснение: Командата ROLLBACK ще отмени промените, направени от оператора DELETE, ефективно възстановявайки записите, които са били изтрити по време на транзакцията.
Създаване на тест