5.1 SLET FRA erklæring
Det, der er nemt at gøre i SQL, er at slette data. Du kan slette absolut alt meget hurtigt, og ingen vil endda bede dig om nogen bekræftelse.
Lad os starte med det enkleste scenarie: hvordan man sletter en række i en tabel .
Dette er det scenarie, du oftest vil se, det er normalt sletning af en specifik post, og standardforespørgslen ser normalt ud:
DELETE FROM table
WHERE id = 133;
Dette er den eneste forespørgsel, hvor du ikke behøver at angive navnene på kolonnerne: Når alt kommer til alt, slettes dataene straks i rækker.
Det andet scenarie er at slette rækkerne, der er givet af id-listen , alt er også ret simpelt her:
DELETE FROM table
WHERE id IN (1, 2, 3, …);
Det tredje scenarie er at fjerne rækker, der matcher en bestemt betingelse:
DELETE FROM table
WHERE condition;
Lad os sige, at vi vil fyre alle vores programmører, så skal vi skrive en anmodning som:
DELETE FROM employee
WHERE occupation = 'Programmer';
Og endelig, hvis du vil slette alle poster, kan du skrive en forespørgsel som denne:
DELETE FROM table
Denne enkle forespørgsel er nok til at fjerne alle poster fra en tabel. Forresten vil der ikke være nogen Ctrl + Z i dette tilfælde. Optagelser slettes simpelthen uden mulighed for gendannelse, og det er det. Så lav backup, oftere .
5.2 Fjernelse af alt
For hurtig fjernelse (for at tilføje hovedpine til brugere) har SQL et par flere kommandoer.
Hvordan sletter man hurtigt alle data i en tabel? Brug operatoren TRUNCATE
:
TRUNCATE TABLE table
En tastefejl i tabellens navn - og et par dages datagendannelse får du. Vær glad for, at du ikke er databaseadministrator.
Hvis du ikke kun skal slette dataene i tabellen, men selve tabellen, så er der en operator DROP
til dette :
DROP TABLE table
Forresten er der lignende muligheder med databaseskemaer . Hvis du vil slette selve databasen, så:
DROP SCHEME database
eller:
DROP DATABASE database
Du kan også bruge DROP til at slette:
- BEGIVENHED
- FUNGERE
- PROCEDURE
- INDEKS
- UDSIGT
- UDLØSER
Og her er et par interessante historier relateret til sletning af data:
Dagens pause. GitLab slettede 300 GB kundedata på grund af sysadmin-fejl
sudo rm -rf, eller Chronicle of the GitLab.com database hændelse fra 2017/01/31
GO TO FULL VERSION