PostgreSQL Existe avec l'exemple de sélection, d'insertion, de mise à jour et de suppression

Qu'est-ce qui existe dans PostgreSQL?

La PostgreSQL EXISTE L’opérateur teste si une ou plusieurs lignes existent dans une sous-requête. Cela signifie que l'opérateur est utilisé avec une sous-requête. L'opérateur Exists est dit satisfait lorsqu'au moins une ligne est trouvée dans la sous-requête. Vous pouvez utiliser cette opération avec les instructions SELECT, UPDATE, INSERT et DELETE.

Postgres existe, syntaxe de requête

Voici la syntaxe du PostgreSQL Instruction EXISTE :

WHERE EXISTS (subquery);

La syntaxe ci-dessus montre que l'opérateur EXISTS prend un argument, qui est une sous-requête. La sous-requête est simplement un Instruction SELECT cela devrait commencer par un SELECT * au lieu d'une liste de noms de colonnes ou d'expressions.

PostgreSQL Existe avec l'instruction SELECT

Voyons comment utiliser une instruction SELECT avec l'opérateur EXISTS. Nous avons les tableaux suivants :

Livre:

PostgreSQL Existe avec l'instruction SELECT

Le prix :

PostgreSQL Existe avec l'instruction SELECT

Exécutez l'instruction suivante :

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

Cela renvoie les éléments suivants :

PostgreSQL Existe avec l'instruction SELECT

La commande ci-dessus doit renvoyer tous les enregistrements de la table Book dont l'identifiant correspond à l'identifiant de tous les enregistrements de la sous-requête. Un seul identifiant correspondait. Par conséquent, un seul enregistrement a été renvoyé.

PostgreSQL Existe avec l'instruction INSERT

Nous pouvons utiliser l'opérateur EXISTS dans un Instruction INSERT. Nous avons les 3 tableaux suivants :

Livre:

PostgreSQL Existe avec l'instruction INSERT

Le prix :

PostgreSQL Existe avec l'instruction INSERT

Prix2 :

PostgreSQL Existe avec l'instruction INSERT

Nous pouvons alors exécuter l'instruction suivante :

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

Le tableau des prix est désormais le suivant :

PostgreSQL Existe avec l'instruction INSERT

La ligne avec un identifiant de 5 dans le tableau nommé Price2 a été mise en correspondance. Cet enregistrement a ensuite été inséré dans la table des prix.

Postgres existe avec l'instruction UPDATE

Nous pouvons utiliser l'opérateur EXISTS dans une instruction UPDATE.

Exécutez la requête suivante :

UPDATE Price
SET price = (SELECT price
              FROM Price2
              WHERE Price2.id = Price.id)
WHERE EXISTS (SELECT id, price
FROM Price2
WHERE Price2.id = Price.id);

Postgres existe avec l'instruction UPDATE

Nous mettons à jour la colonne prix du tableau Prix. Notre objectif est que les prix des articles partageant un identifiant soient les mêmes. Une seule ligne correspondait, soit 5.

Cependant, comme les prix sont égaux, soit 205, aucune mise à jour n'a été effectuée. S'il y avait une différence, une mise à jour aurait été effectuée.

Postgres existe avec l'instruction DELETE

A PostgreSQL L'instruction DELETE peut utiliser l'opérateur EXISTS. Voici un exemple :

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

Le tableau des prix est désormais le suivant :

Postgres existe avec l'instruction DELETE

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

PostgreSQL Exists Déclaration utilisant pgAdmin

Voyons maintenant comment ces actions peuvent être effectuées à l'aide de pgAdmin :

Comment utiliser la requête Existe dans PostgreSQL avec l'instruction SELECT utilisant pgAdmin

Vous trouverez ci-dessous les étapes pour utiliser la requête Existe dans PostgreSQL avec l'instruction SELECT utilisant pgAdmin :

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

PostgreSQL Exists Déclaration utilisant pgAdmin

Étape 3) Tapez la requête

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

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

Étape 4) Exécuter la requête

Cliquez sur le bouton Exécuter

PostgreSQL Exists Déclaration utilisant pgAdmin

Il devrait renvoyer ce qui suit :

PostgreSQL Exists Déclaration utilisant pgAdmin

Avec l'instruction INSERT

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.

Existe dans l'instruction PostgreSQL en utilisant pgAdmin

Étape 3) Tapez la requête dans l'éditeur de requêtes :

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

Étape 4) Cliquez sur le bouton Exécuter.

Existe dans l'instruction PostgreSQL en utilisant pgAdmin

Le tableau des prix devrait maintenant être le suivant :

Existe dans l'instruction PostgreSQL en utilisant pgAdmin

Avec instruction UPDATE

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.

Existe dans l'instruction PostgreSQL en utilisant pgAdmin

Étape 3) Tapez la requête dans l'éditeur de requêtes :

UPDATE Price
SET price = (SELECT price
              FROM Price2
              WHERE Price2.id = Price.id)
WHERE EXISTS (SELECT id, price
FROM Price2
WHERE Price2.id = Price.id);

Étape 4) Cliquez sur le bouton Exécuter.

PostgreSQL Exists Déclaration utilisant pgAdmin

Le tableau des prix devrait maintenant être le suivant :

PostgreSQL Exists Déclaration utilisant pgAdmin

Avec l'instruction DELETE

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.

PostgreSQL Exists Déclaration utilisant pgAdmin

Étape 3) Tapez la requête dans l'éditeur de requêtes :

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

Étape 4) Cliquez sur le bouton Exécuter.

PostgreSQL Exists Déclaration utilisant pgAdmin

Le tableau des prix devrait maintenant être le suivant :

PostgreSQL Exists Déclaration utilisant pgAdmin

Résumé

  • L'opérateur EXISTS teste si une ou plusieurs lignes existent dans une sous-requête.
  • Il est utilisé avec une sous-requête et est dit satisfait lorsque la sous-requête renvoie au moins une ligne.
  • Il est utilisé avec les instructions SELECT, UPDATE, INSERT et DELETE.

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