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
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 :
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 :
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 :
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:
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 );
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 :
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
- Dans la barre de navigation à gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
É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
Étape 5) Vérifiez si la ligne est supprimée
Vérifions si la suppression a réussi :
Avec deux conditions
Pour accomplir la même chose via pgAdmin, procédez comme suit :
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation à 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
Pour accomplir la même chose via pgAdmin, procédez comme suit :
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation à 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 :
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