Instrukcja MySQL DELETE służy do usuwania z tabeli MySQL rekordów, które nie są już potrzebne w bazie danych. To zapytanie w MySQL usuwa cały wiersz z tabeli i generuje liczbę usuniętych wierszy . Umożliwia także usunięcie więcej niż jednego rekordu z tabeli w ramach jednego zapytania, co jest korzystne przy usuwaniu dużej liczby rekordów z tabeli. Korzystając z instrukcji usuwania, możemy również usunąć dane na podstawie warunków.
algorytmy wyszukiwania binarnego
Gdy usuniemy rekordy za pomocą tego zapytania, nie będziemy mogli ich odzyskać . Dlatego zaleca się przed usunięciem jakichkolwiek rekordów z tabeli utwórz kopię zapasową swojej bazy danych . Kopie zapasowe bazy danych pozwalają nam przywrócić dane, gdy będą potrzebne w przyszłości.
Składnia:
Poniżej znajduje się składnia ilustrująca sposób użycia instrukcji DELETE:
DELETE FROM table_name WHERE condition;
W powyższym zestawieniu musimy najpierw określić nazwę tabeli, z której chcemy usunąć dane. Po drugie, musimy określić warunek usunięcia rekordów w klauzuli WHERE, która jest opcjonalna. Jeśli pominiemy w instrukcji klauzulę WHERE, zapytanie to usunie całe rekordy z tabeli bazy danych.
Jeśli chcemy usunąć rekordy z wielu tabel za pomocą jednego zapytania DELETE, musimy dodać DOŁĄCZYĆ klauzula z instrukcją DELETE.
Jeśli chcemy usunąć wszystkie rekordy z tabeli, nie znając liczby usuniętych wierszy, musimy skorzystać z metody SKRÓĆ TABELI stwierdzenie, które zapewnia lepszą wydajność.
Przyjrzyjmy się, jak działa instrukcja DELETE MySQL'a poprzez różne przykłady.
Przykłady instrukcji MySQL DELETE
Tutaj będziemy korzystać z 'Pracownicy' I 'Zapłata' tabele demonstracyjne instrukcji DELETE. Załóżmy, że tabele Pracownicy i Płatności zawierają następujące dane:
Jeśli chcemy usunąć pracownika, którego em_id wynosi 107 , powinniśmy użyć instrukcji DELETE z klauzulą WHERE. Zobacz poniższe zapytanie:
mysql> DELETE FROM Employees WHERE emp_id=107;
Po wykonaniu zapytania zwróci dane wyjściowe jak na obrazku poniżej. Po usunięciu rekordu zweryfikuj tabelę za pomocą instrukcji SELECT:
Jeśli chcemy usunąć wszystkie rekordy z tabeli, nie ma potrzeby stosowania klauzuli WHERE z instrukcją DELETE. Zobacz poniższy kod i dane wyjściowe:
Na powyższym wyjściu widzimy, że po usunięciu wszystkich wierszy tabela Pracownicy będzie pusta. Oznacza to, że w wybranej tabeli nie ma dostępnych rekordów.
Klauzula DELETE i LIMIT MySQL
Klauzula MySQL Limit służy do ograniczania liczby wierszy zwracanych ze zbioru wyników, zamiast pobierania całych rekordów z tabeli. Czasami chcemy ograniczyć liczbę wierszy do usunięcia z tabeli; w takim przypadku użyjemy LIMIT klauzulę w następujący sposób:
Aktorka Rubina Dilaik
DELETE FROM table_name WHERE condition ORDER BY colm1, colm2, ... LIMIT row_count;
Należy zauważyć, że kolejność wierszy w tabeli MySQL jest nieokreślona. Dlatego zawsze powinniśmy używać ZAMÓW PRZEZ klauzuli podczas korzystania z klauzuli LIMIT.
Na przykład , poniższe zapytanie najpierw sortuje pracowników według ich nazwisk alfabetycznie i usuwa pierwszych trzech pracowników z tabeli:
mysql> DELETE FROM Employees ORDER BY name LIMIT 3;
Da to poniższe dane wyjściowe:
porównaj ciągi Java
Klauzula DELETE i JOIN MySQL
Klauzula JOIN służy do dodawania dwóch lub więcej tabel w MySQL. Klauzulę JOIN dodamy do instrukcji DELETE zawsze, gdy w ramach jednego zapytania będziemy chcieli usunąć rekordy z wielu tabel. Zobacz poniższe zapytanie:
mysql> DELETE Employees, Payment FROM Employees INNER JOIN Payment ON Employees.emp_id = Payment.emp_id WHERE Employees.emp_id = 102;
Wyjście:
Po wykonaniu zobaczymy wynik jak na poniższym obrazku:
Aby przeczytać więcej informacji na temat instrukcji DELETE z klauzulą JOIN, Kliknij tutaj .