logo

SQL оператор DELETE

SQL операторът DELETE се използва за премахване на определени редове от таблица, като същевременно запазва структурата на таблицата непокътната. Различава се от DROP, който изтрива цялата таблица.

  • Той премахва редове въз основа на условия.
  • Запазва ограниченията и индексите на схемата на таблицата.
  • Може да изтрие един ред или всички редове.

Пример: Първо ще го направим създавам демонстрационна SQL база данни и таблица, върху която ще използваме командата SQL DELETE.

на' title=

Запитване:



pyspark
DELETE FROM Employees  
WHERE EmployeeID = 5;

Изход:

Изтрит ред-' loading='lazy' title=
  • Тази заявка изтрива реда от таблицата 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

Изход:

GFG_служител' loading='lazy' title=

Пример 1: Изтриване на единичен запис

Можем да използваме оператора DELETE с условие за изтриване на определен ред от таблица. The КЪДЕ клауза гарантира, че само желаният запис е премахнат. Можем да изтрием записите с име Rithvik, като използваме заявката по-долу:

Запитване:

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  ще стане празна.

Връщане назад на операциите DELETE

Тъй като операторът DELETE е DML операция, той може да бъде върнат назад, когато се изпълни в израз. Ако случайно изтриете записи или трябва да повторите процеса, можете да използвате ВЪРТАНЕ команда.

Запитване:

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

Обяснение: Командата ROLLBACK ще отмени промените, направени от оператора DELETE, ефективно възстановявайки записите, които са били изтрити по време на транзакцията.

Създаване на тест