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.
Zapytanie:
DELETE FROM Employees
WHERE EmployeeID = 5;
Wyjście:
- 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:
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:
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
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:
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