logo

Instrukcja DELETE SQL

Instrukcja SQL DELETE służy do usuwania określonych wierszy z tabeli przy zachowaniu nienaruszonej struktury tabeli. Różni się od DROP, która usuwa całą tabelę.

  • Usuwa wiersze na podstawie warunków.
  • Zachowuje ograniczenia i indeksy schematu tabeli.
  • Można usunąć pojedynczy wiersz lub wszystkie wiersze.

Przykład: Najpierw to zrobimy tworzyć demonstracyjna baza danych SQL i tabela, na której użyjemy polecenia SQL DELETE.

z' title=

Zapytanie:



DELETE FROM Employees  
WHERE EmployeeID = 5;

Wyjście:

Usunięto-wiersz-' loading='lazy' title=
  • To zapytanie usuwa wiersz z tabeli Pracownicy, w którym identyfikator pracownika wynosi 5.
  • Usuwany jest tylko ten konkretny rekord; wszystkie pozostałe wiersze pozostają niezmienione.

Składnia:

DELETE FROM table_name   
WHERE some_condition;
  • Jakiś_warunek: Warunek używany do filtrowania wierszy, które chcesz usunąć.
  • nazwa_tabeli: Nazwa tabeli, z której chcesz usunąć wiersze.

Notatka: Za pomocą klauzuli WHERE możemy usunąć pojedynczy lub wiele rekordów; jeśli zostanie pominięty, wszystkie rekordy w tabeli zostaną usunięte.

Przykłady instrukcji SQL DELETE

Załóżmy, że utworzyliśmy tabelę o nazwie GFG_Employee w języku SQL, która zawiera dane osobowe pracownika, w tym jego identyfikator, adres e-mail, dział itp., jak pokazano poniżej.

UTWÓRZ TABELĘ GFG_Pracownicy (
id INT KLUCZ PODSTAWOWY
imię VARCHAR (20)
e-mail VARCHAR (25)
dział VARCHAR(20)
);

WSTAW WARTOŚCI GFG_Employees (nazwa identyfikacyjna działu e-mail).
(1 „Jessie” „[email protected]” „Rozwój”)
(2 „Praveen” „[email protected]” „HR”)
(3 „Może” „[email protected]” „Sprzedaż”)
(4 „Rithvik” „[email protected]” „IT”)
(5 „Suraj” „[email protected]” „Zapewnienie jakości”)
(6 „Om” „[email protected]” „IT”)
(7 „Naruto” „[email protected]” „Rozwój”);

Wybierz * Z GFG_Employees

Wyjście:

GFG_pracownik' loading='lazy' title=

Przykład 1: Usuwanie pojedynczego rekordu

Możemy użyć instrukcji DELETE z warunkiem usunięcia określonego wiersza z tabeli. The GDZIE klauzula gwarantuje, że zostanie usunięty tylko zamierzony rekord. Możemy usunąć rekordy o nazwie Rithvik, korzystając z poniższego zapytania:

Zapytanie:

DELETE FROM GFG_Employees   
WHERE NAME = 'Rithvik';

Wyjście:

usunięte informacje' loading='lazy' title=

Przykład 2: Usuwanie wielu rekordów

Aby usunąć wiele rekordów, możesz określić warunek pasujący do kilku wierszy. Usuńmy wiersze z tabeli GFG_Employees, w której dział to „Rozwój”. Spowoduje to usunięcie 2 wierszy (pierwszy wiersz i siódmy wiersz).

Zapytanie:

DELETE FROM GFG_Employees   
WHERE department = 'Development';

Wyjście

dział' loading='lazy' title=

Przykład 3: Usuń wszystkie rekordy z tabeli

Jeśli chcemy usunąć wszystkie rekordy z tabeli, możemy pominąć klauzulę WHERE lub alternatywnie użyć instrukcji DELETE z gwiazdką (*) do oznaczenia wszystkich wierszy.

Zapytanie:

DELETE FROM GFG_Employees;  
Or
DELETE * FROM GFG_Employees;

Wyjście:

pusty' loading='lazy' title=

Wszystkie rekordy w tabeli zostaną usunięte. Nie ma już żadnych rekordów do wyświetlenia. Tabela GFG_Employees  stanie się pusta.

Wycofywanie operacji USUŃ

Ponieważ instrukcja DELETE jest operacją DML, można ją wycofać po wykonaniu w instrukcji. Jeśli przypadkowo usuniesz rekordy lub będziesz musiał powtórzyć proces, możesz skorzystać z WYCOFANIE rozkaz.

Zapytanie:

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

Wyjaśnienie: Komenda ROLLBACK cofnie zmiany wprowadzone instrukcją DELETE, skutecznie przywracając rekordy usunięte podczas transakcji.

Utwórz quiz