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

Silicon Valley "Silicon Valley" - Datasletning