PostgreSQL Supprimer des lignes de la sélection
⚡ Résumé intelligent
PostgreSQL La commande DELETE supprime une ou plusieurs lignes d'une table, et son association avec une clause WHERE cible uniquement les enregistrements qui correspondent à une condition, tandis que l'omission de WHERE efface toutes les lignes de la table.

Supprimer la requête dans PostgreSQL
Le instruction DELETE in PostgreSQL permet de supprimer un ou plusieurs enregistrements d'une table. Pour supprimer uniquement les lignes sélectionnées d'une table, PostgreSQL permet de combiner l'instruction DELETE avec la clause WHERE ; sinon, elle supprime tous les enregistrements de la table.
PostgreSQL Syntaxe de la requête de suppression
L'instruction DELETE peut être définie à l'aide de la syntaxe suivante :
[ WITH [ RECURSIVE ] with-query [, ...] ] DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ] [ USING using-list ] [ WHERE condition(s) | WHERE CURRENT OF cursor-name] [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]
Paramètres
Les paramètres suivants sont disponibles :
- avec requête: la clause WITH vous permet de faire référence à une ou plusieurs sous-requêtes par leur nom à l'intérieur de la requête DELETE.
- table-name: le nom de la table dont les enregistrements doivent être supprimés.
- alias: un substitut pour le nom de la table cible.
- liste d'utilisation: expressions de table qui permettent d'utiliser des colonnes d'autres tables dans la clause WHERE.
- conditions): facultatif. Ce sont les conditions qui doivent être remplies pour que les enregistrements soient supprimés. Si cette section n'est pas renseignée, tous les enregistrements de la table seront supprimés.
- nom du curseur: le curseur à utiliser dans la condition WHERE CURRENT OF. La dernière ligne extraite par ce curseur sera supprimée.
- expression de sortie: l'expression à traiter et à renvoyer par l'instruction DELETE après la suppression de chaque ligne.
- nom-sortie: le nom à utiliser pour la colonne renvoyée.
Notez que, puisque l'instruction DELETE supprime la ligne entière, il n'est pas nécessaire de spécifier les noms des colonnes.
PostgreSQL Supprimer la requête avec une condition
L'instruction DELETE peut être utilisée avec une seule condition, définie par la clause WHERE. Prenons l'exemple de la table Price avec les données suivantes :
Le prix :
Supprimons l'enregistrement avec un identifiant de 4 :
DELETE FROM Price WHERE id = 4;
La commande ci-dessus supprime les enregistrements dont l'identifiant est 4. Vérifions si la suppression a réussi :
La ligne avec un identifiant de 4 a été supprimée.
Supprimer la requête avec deux conditions
Le PostgreSQL L'instruction DELETE peut également accepter deux conditions. Ces deux conditions doivent être combinées à l'aide de l'opérateur AND. Nous utiliserons le tableau suivant :
Le prix :
Prenons l'exemple ci-dessous :
DELETE FROM Price WHERE id = 3 AND price = 300;
Dans la commande ci-dessus, nous supprimons la ligne où l'identifiant est 3 et le prix est de 300. Nous pouvons maintenant interroger la table :
SELECT * FROM Price;
Cela renvoie les éléments suivants :
L'enregistrement avec un identifiant de 3 et un prix de 300 a été supprimé.
PostgreSQL Suppression de requête utilisant la condition EXISTS
Avec EXISTE Vous pouvez rendre la suppression plus complexe en fonction de certaines conditions. Il peut parfois être nécessaire de supprimer des enregistrements d'une table en fonction des enregistrements d'une autre table.
Étant donné que la clause FROM ne permet pas de lister les enregistrements de plusieurs tables lors d'une suppression, la clause EXISTS s'avère très utile. Nous avons les deux tables suivantes :
Livre:
Le prix :
Nous pouvons alors exécuter la requête suivante :
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Cette commande supprime de la table Book les lignes qui correspondent à un identifiant dans la table Price et dont le prix est inférieur à 250.
La table Livre est désormais la suivante :
L'enregistrement avec un identifiant de 1 a été supprimé.
Comment supprimer une ligne dans PostgreSQL en utilisant pgAdmin
Les mêmes requêtes de suppression peuvent également être exécutées visuellement via l'interface pgAdmin, en suivant les étapes ci-dessous :
Avec une condition
Étape 1) Connectez-vous à votre compte pgAdmin. Ouvrez pgAdmin et connectez-vous à votre compte à l'aide de vos identifiants.
Étape 2) Créer une base de données de démonstration.
- Dans la barre de navigation de gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête ci-dessous dans l'éditeur de requête :
DELETE FROM Price WHERE id = 4;
Étape 4) Cliquez sur le bouton Exécuter.
Étape 5) Vérifions si la ligne a été supprimée :
Avec deux conditions
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation de gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requêtes :
DELETE FROM Price WHERE id = 3 AND price = 300;
Étape 4) Cliquez sur le bouton Exécuter.
Étape 5) Vérifions si la suppression a réussi :
Utilisation de la condition EXISTE
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation de gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requêtes :
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Étape 4) Cliquez sur le bouton Exécuter.
Étape 5) Vérifions si la suppression a réussi :
Téléchargez la base de données utilisée dans ce tutoriel
















