5.1 Instrukcja USUŃ Z
To, co jest łatwe do zrobienia w SQL, to usuwanie danych. Możesz usunąć absolutnie wszystko bardzo szybko i nikt nawet nie poprosi Cię o potwierdzenie.
Zacznijmy od najprostszego scenariusza: jak usunąć jeden wiersz w tabeli .
Z takim scenariuszem spotkasz się najczęściej, zwykle jest to usunięcie konkretnego rekordu, a standardowe zapytanie zwykle wygląda tak:
DELETE FROM table
WHERE id = 133;
To jedyne zapytanie, w którym nie trzeba określać nazw kolumn: w końcu dane są usuwane natychmiast w wierszach.
Drugi scenariusz to usunięcie wierszy określonych przez id list , tutaj również wszystko jest dość proste:
DELETE FROM table
WHERE id IN (1, 2, 3, …);
Trzeci scenariusz polega na usunięciu wierszy spełniających określony warunek:
DELETE FROM table
WHERE condition;
Powiedzmy, że chcemy zwolnić wszystkich naszych programistów, wtedy musimy napisać prośbę typu:
DELETE FROM employee
WHERE occupation = 'Programmer';
I na koniec, jeśli chcesz usunąć wszystkie rekordy, możesz napisać zapytanie w następujący sposób:
DELETE FROM table
To proste zapytanie wystarczy, aby usunąć wszystkie rekordy z tabeli. Nawiasem mówiąc, w tym przypadku nie będzie Ctrl + Z. Nagrania są po prostu kasowane bez możliwości odzyskania i tyle. Dlatego częściej twórz kopie zapasowe .
5.2 Usuwanie wszystkiego
Aby szybko usunąć (aby dodać użytkownikom bólu głowy), SQL ma kilka dodatkowych poleceń.
Jak szybko usunąć wszystkie dane z tabeli? Skorzystaj z operatora TRUNCATE
:
TRUNCATE TABLE table
Jedna literówka w nazwie tabeli - i masz zapewnione kilka dni odzyskiwania danych. Ciesz się, że nie jesteś administratorem bazy danych.
Jeśli chcesz usunąć nie tylko dane z tabeli, ale także samą tabelę, istnieje do tego operator DROP
:
DROP TABLE table
Nawiasem mówiąc, istnieją podobne opcje ze schematami baz danych . Jeśli chcesz usunąć samą bazę danych, to:
DROP SCHEME database
Lub:
DROP DATABASE database
Możesz także użyć DROP, aby usunąć:
- WYDARZENIE
- FUNKCJONOWAĆ
- PROCEDURA
- INDEKS
- POGLĄD
- SPUST
A oto kilka interesujących historii związanych z usuwaniem danych:
Przerwa dnia. GitLab usunął 300 GB danych klienta z powodu błędu sysadmin
sudo rm -rf, czyli Kronika incydentu z bazą danych GitLab.com z 31.01.2017
GO TO FULL VERSION