5.1 DELETE FROM-sats
Det som är enkelt att göra i SQL är att radera data. Du kan radera absolut allt mycket snabbt, och ingen kommer ens att be dig om någon bekräftelse.
Låt oss börja med det enklaste scenariot: hur man tar bort en rad i en tabell .
Det här är det scenario du kommer att se oftast, det är vanligtvis radering av en specifik post, och standardfrågan ser vanligtvis ut så här:
DELETE FROM table
WHERE id = 133;
Detta är den enda fråga där du inte behöver ange namnen på kolumnerna: trots allt raderas data omedelbart i rader.
Det andra scenariot är att radera raderna som ges av id-listan , allt är också ganska enkelt här:
DELETE FROM table
WHERE id IN (1, 2, 3, …);
Det tredje scenariot är att ta bort rader som matchar ett visst villkor:
DELETE FROM table
WHERE condition;
Låt oss säga att vi vill sparka alla våra programmerare, då måste vi skriva en begäran som:
DELETE FROM employee
WHERE occupation = 'Programmer';
Och slutligen, om du vill ta bort alla poster kan du skriva en fråga så här:
DELETE FROM table
Denna enkla fråga räcker för att ta bort alla poster från en tabell. Förresten, det kommer inte att finnas någon Ctrl + Z i det här fallet. Inspelningar raderas helt enkelt utan möjlighet till återställning och det är allt. Så gör säkerhetskopior, oftare .
5.2 Ta bort allt
För snabb borttagning (för att lägga till huvudvärk för användare) har SQL några fler kommandon.
Hur tar man snabbt bort all data i en tabell? Använd operatorn TRUNCATE
:
TRUNCATE TABLE table
Ett stavfel i tabellens namn - och ett par dagars dataåterställning får du. Var glad att du inte är en databasadministratör.
Om du behöver ta bort inte bara data i tabellen, utan själva tabellen, så finns det en operator DROP
för detta :
DROP TABLE table
Förresten, det finns liknande alternativ med databasscheman . Om du vill ta bort själva databasen gör du så här:
DROP SCHEME database
eller:
DROP DATABASE database
Du kan också använda DROP för att ta bort:
- HÄNDELSE
- FUNGERA
- PROCEDUR
- INDEX
- SE
- TRIGGER
Och här är ett par intressanta historier relaterade till radering av data:
Dagens paus. GitLab raderade 300 GB kunddata på grund av sysadmin-fel
sudo rm -rf, eller Chronicle of the GitLab.com databasincident från 2017/01/31
GO TO FULL VERSION