5.1 SLETT FRA-uttalelse

Det som er enkelt å gjøre i SQL er å slette data. Du kan slette absolutt alt veldig raskt, og ingen vil engang be deg om noen bekreftelse.

La oss starte med det enkleste scenariet: hvordan slette en rad i en tabell .

Dette er scenariet du vil se oftest, det er vanligvis sletting av en spesifikk post, og standardspørringen ser vanligvis slik ut:

DELETE FROM table
WHERE id = 133;

Dette er den eneste spørringen der du ikke trenger å spesifisere navnene på kolonnene: Tross alt slettes dataene umiddelbart i rader.

Det andre scenariet er å slette radene som er gitt av id-listen , alt er også ganske enkelt her:

DELETE FROM table
WHERE id IN (1, 2, 3,);

Det tredje scenariet er å fjerne rader som samsvarer med en bestemt betingelse:

DELETE FROM table
WHERE condition;

La oss si at vi ønsker å sparke alle programmererne våre, så må vi skrive en forespørsel som:

DELETE FROM employee
WHERE occupation = 'Programmer';

Og til slutt, hvis du vil slette alle poster, kan du skrive en spørring som dette:

DELETE FROM table

Denne enkle spørringen er nok til å fjerne alle poster fra en tabell. Forresten, det vil ikke være Ctrl + Z i dette tilfellet. Opptak slettes ganske enkelt uten mulighet for gjenoppretting og det er det. Så gjør sikkerhetskopier oftere .

5.2 Fjerne alt

For rask fjerning (for å legge til hodepine for brukere), har SQL noen flere kommandoer.

Hvordan sletter jeg raskt alle data i en tabell? Bruk operatøren TRUNCATE :

TRUNCATE TABLE table

En skrivefeil i tabellens navn - og et par dager med datagjenoppretting får du. Vær glad du ikke er databaseadministrator.

Hvis du trenger å slette ikke bare dataene i tabellen, men selve tabellen, så er det en operatør DROP for dette :

DROP TABLE table

Forresten, det er lignende alternativer med databaseskjemaer . Hvis du vil slette selve databasen, gjør du følgende:

DROP SCHEME database

eller:

DROP DATABASE database

Du kan også bruke DROP for å slette:

  • BEGIVENHET
  • FUNKSJON
  • FREMGANGSMÅTE
  • INDEKS
  • UTSIKT
  • AVTREKKER

Og her er et par interessante historier relatert til sletting av data:

Dagens pause. GitLab slettet 300 GB med kundedata på grunn av sysadmin-feil

sudo rm -rf, eller Chronicle of the GitLab.com database-hendelse fra 2017/01/31

Silicon Valley "Silicon Valley" - Datasletting