5.1 DELETE FROM instruction

Ce qui est facile à faire en SQL, c'est de supprimer des données. Vous pouvez supprimer absolument tout très rapidement, et personne ne vous demandera même de confirmation.

Commençons par le scénario le plus simple : comment supprimer une ligne dans une table .

C'est le scénario que vous verrez le plus souvent, il s'agit généralement de la suppression d'un enregistrement spécifique, et la requête standard ressemble généralement à :

DELETE FROM table
WHERE id = 133;

C'est la seule requête où vous n'avez pas besoin de spécifier les noms des colonnes : après tout, les données sont immédiatement supprimées en lignes.

Le deuxième scénario consiste à supprimer les lignes qui sont données par l' id list , tout est également assez simple ici :

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

Le troisième scénario consiste à supprimer les lignes qui correspondent à une certaine condition :

DELETE FROM table
WHERE condition;

Disons que nous voulons virer tous nos programmeurs, alors nous devons écrire une requête comme :

DELETE FROM employee
WHERE occupation = 'Programmer';

Et enfin, si vous souhaitez supprimer tous les enregistrements, vous pouvez écrire une requête comme celle-ci :

DELETE FROM table

Cette simple requête suffit à supprimer tous les enregistrements d'une table. Au fait, il n'y aura pas de Ctrl + Z dans ce cas. Les enregistrements sont simplement supprimés sans possibilité de récupération et c'est tout. Faites donc des sauvegardes, plus souvent .

5.2 Tout supprimer

Pour une suppression rapide (pour ajouter des maux de tête aux utilisateurs), SQL a quelques commandes supplémentaires.

Comment supprimer rapidement toutes les données d'un tableau ? Utilisez l'opérateur TRUNCATE :

TRUNCATE TABLE table

Une faute de frappe dans le nom de la table - et quelques jours de récupération de données vous sont fournis. Soyez heureux de ne pas être un administrateur de base de données.

Si vous devez supprimer non seulement les données de la table, mais la table elle-même, il existe un opérateur DROP pour cela :

DROP TABLE table

Soit dit en passant, il existe des options similaires avec les schémas de base de données . Si vous souhaitez supprimer la base de données elle-même, alors :

DROP SCHEME database

ou:

DROP DATABASE database

Vous pouvez également utiliser DROP pour supprimer :

  • ÉVÉNEMENT
  • FONCTION
  • PROCÉDURE
  • INDICE
  • VOIR
  • DÉCLENCHER

Et voici quelques histoires intéressantes liées à la suppression de données :

Pause du jour. GitLab a supprimé 300 Go de données client en raison d'une erreur sysadmin

sudo rm -rf, ou Chronique de l'incident de la base de données GitLab.com du 31/01/2017

Silicon Valley "Silicon Valley" - Suppression de données