L'instruction SQL DELETE supprime des lignes de données d'une table ou vue spécifiée.
- Ouvrez un éditeur SQL et connectez-vous à votre base de données.
Connectez-vous à l'aide d'un compte doté des privilèges de suppression sur la table.
- Vous trouverez ci-dessous des requêtes d'exemple qui suppriment les données pour chaque base de données prise en charge :
- Cet exemple supprime les valeurs d'une table dans Oracle à l'aide d'un filtre spatial :
DELETE FROM sensitive_areas WHERE names (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE sde.st_overlaps (sa.zone, sde.st_buffer (hs.location,.01)) = 1);
- Cet exemple supprime les valeurs d'une table dans PostgreSQL à l'aide d'un filtre spatial :
DELETE FROM sensitive_areas WHERE names EXISTS (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) = 't');
- Cet exemple supprime les valeurs d’une table dans une base de données SQLite à l’aide d'un filtre spatial :
DELETE FROM sensitive_areas WHERE names (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) = 1);
- Dans IBM Db2, utilisez l’instruction suivante :
DELETE FROM sensitive_areas WHERE names (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE db2gse.st_overlaps (sa.zone, db2gse.st_buffer (hs.location,.01)) = 1);
- Informix ne prend pas en charge la modification d’une table ou d’une vue utilisée dans une sous-requête. Vous devez par conséquent scinder la requête en deux parties : effectuez une sélection pour la placer dans une table temporaire et supprimez cette sélection en supprimant la table temporaire.
SELECT sa.name FROM sensitive_areas sa, hazardous_sites hs WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) INTO TEMP tempTable; DELETE FROM sensitive_areas WHERE name IN (select name from tempTable);
- Cet exemple supprime les valeurs d'une table dans Oracle à l'aide d'un filtre spatial :