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