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

Silicon Valley "Silicon Valley" - Dataradering