PostgreSQL Supprimer la requête (supprimer les lignes de la sélection)

Supprimer la requête dans PostgreSQL

Vue d'ensemble Supprimer l'instruction in PostgreSQL est utilisé pour supprimer un ou plusieurs enregistrements d'une table. Si vous souhaitez supprimer certaines lignes d'un tableau PostgreSQL vous permet de combiner l'instruction DELETE avec la clause WHERE, sinon tous les enregistrements seront supprimés.

Syntaxe de requête de suppression Postgres

L'instruction DELETE peut être définie par la syntaxe ci-dessous :

[ 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

  • avec requête: la clause WITH nous permet de référencer une ou plusieurs sous-requêtes à référencer par leur nom dans la requête DELETE.
  • table-name: le nom de la table dont les enregistrements doivent être supprimés.
  • alias: ceci remplace le nom de la table cible.
  • using-list : expressions de table permettant d'utiliser les colonnes d'autres tables dans la clause WHERE.
  • les conditions): facultatif. Ce sont les conditions qui doivent être remplies pour que les enregistrements soient supprimés. Si cette section n'est pas fournie, tous les enregistrements de nom de table seront supprimés.
  • nom du curseur: le curseur à utiliser dans la condition WHERE CURRENT OF. La dernière ligne récupérée par ce curseur sera supprimée.
  • expression de sortie: l'expression à traiter et renvoyée 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, vous n'avez pas besoin de spécifier les noms de colonnes.

PostgreSQL Supprimer la requête avec une condition

L'instruction DELETE peut être utilisée avec une seule condition. La condition est définie à l'aide de la clause WHERE. Considérez le tableau des prix avec les données suivantes :

Prix

PostgreSQL Supprimer la requête avec une condition

Supprimons l'enregistrement avec un identifiant de 4 :

DELETE FROM Price
WHERE id = 4;

La commande ci-dessus supprimera les enregistrements dans lesquels l'identifiant est 4. Confirmons si la suppression a réussi :

PostgreSQL Supprimer la requête avec une condition

La ligne avec un identifiant de 4 a été supprimée.

Supprimer la requête avec deux conditions

Vue d'ensemble PostgreSQL L'instruction DELETE peut prendre deux conditions. Les deux conditions doivent être jointes à l'aide de l'opérateur AND. Nous utiliserons le tableau suivant :

Le prix :

PostgreSQL Supprimer la requête avec deux conditions

Prenons l'exemple ci-dessous :

DELETE FROM Price
WHERE id = 3Y
AND price = 300;

Dans la commande ci-dessus, nous supprimons la ligne dans laquelle l'identifiant est 3 et le prix est 300. Nous pouvons maintenant interroger la table :

SELECT * FROM Price

Cela renvoie ce qui suit :

PostgreSQL Supprimer la requête avec deux conditions

L'enregistrement avec un identifiant de 3 et un prix de 300 a été supprimé.

PostgreSQL Supprimer la requête à l'aide de la condition Existe

Avec la condition EXISTS, vous pouvez rendre la suppression plus complexe. Parfois, il peut être nécessaire de supprimer des enregistrements d’une table en fonction des enregistrements d’une autre table.

Vous verrez que la clause FROM ne vous permet pas de lister les enregistrements de plusieurs tables lors de la suppression, la clause EXISTS devient très utile. Nous avons les deux tableaux suivants :

Livre:

PostgreSQL Supprimer la requête à l'aide de la condition Existe

Le prix :

PostgreSQL Supprimer la requête à l'aide de la condition Existe

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 );

La commande ci-dessus supprimera de la table Book où il existe un enregistrement dans la table Price avec un identifiant correspondant à celui de la table Book et le prix étant inférieur à 250.

La table Livre est désormais la suivante :

PostgreSQL Supprimer la requête à l'aide de la condition Existe

L'enregistrement avec un identifiant de 1 a été supprimé.

Comment supprimer une ligne dans PostgreSQL en utilisant pgAdmin

Voici les étapes pour supprimer une ligne dans PostgreSQL en utilisant pgAdmin :

Avec une condition

Pour accomplir la même chose via pgAdmin, procédez comme suit :

Étape 1) Connectez-vous à votre compte pgAdmin

Ouvrez pgAdmin et connectez-vous à votre compte en utilisant vos informations d'identification

Étape 2) Créer une base de données de démonstration

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

Supprimer la ligne dans PostgreSQL

Étape 3) Tapez la requête

Tapez la requête ci-dessous dans l'éditeur de requête :

DELETE FROM Price
WHERE id = 4;

Étape 4) Exécuter la requête

Cliquez sur le bouton Exécuter

Supprimer la ligne dans PostgreSQL

Étape 5) Vérifiez si la ligne est supprimée

Vérifions si la suppression a réussi :

Supprimer la ligne dans PostgreSQL

Avec deux conditions

Pour accomplir la même chose via pgAdmin, procédez comme suit :

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

Supprimer la ligne dans PostgreSQL

É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.

Supprimer la ligne dans PostgreSQL

Étape 5) Vérifions si la suppression a réussi :

Supprimer la ligne dans PostgreSQL

Utilisation de la condition EXISTE

Pour accomplir la même chose via pgAdmin, procédez comme suit :

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

Supprimer la ligne à l'aide de la condition EXISTS

É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.

Supprimer la ligne à l'aide de la condition EXISTS

Étape 5) Vérifions si la suppression a réussi :

Supprimer la ligne à l'aide de la condition EXISTS

Résumé

  • L'instruction DELETE est utilisée pour supprimer un ou plusieurs enregistrements d'une table.
  • Pour supprimer uniquement certaines lignes d'une table, vous pouvez combiner l'instruction DELETE avec la clause WHERE.
  • Si la clause DELETE est utilisée sans la clause WHERE, elle supprime tous les enregistrements de la table.
  • Le paramètre table-name vous permet d'ajouter le nom de la table à partir de laquelle les enregistrements doivent être supprimés.
  • Nous pouvons utiliser l'instruction DELETE avec une condition, spécifiée à l'aide de la clause WHERE.
  • L'instruction DELETE peut également être utilisée avec deux conditions spécifiées dans la clause WHERE. Les deux conditions doivent être jointes à l’aide de l’opérateur AND.
  • Vue d'ensemble EXISTE La condition peut nous aider à supprimer des enregistrements d'une table en fonction des enregistrements d'une autre table.

Téléchargez la base de données utilisée dans ce tutoriel