PostgreSQL IN, Not IN avec des exemples

โšก Rรฉsumรฉ intelligent

PostgreSQL L'opรฉrateur IN vรฉrifie si une valeur apparaรฎt dans une liste ou une sous-requรชte ร  l'intรฉrieur d'une clause WHERE, remplaรงant plusieurs conditions OR dans les instructions SELECT, UPDATE, INSERT et DELETE pour un filtrage plus propre, plus rapide et plus lisible.

  • ๐Ÿ“‹ syntaxe: La fonction value IN (list) renvoie vrai lorsque la valeur correspond ร  un รฉlรฉment de la liste.
  • ๐Ÿ”ค Listes de personnages : Encadrez les valeurs textuelles de guillemets simples ร  l'intรฉrieur des parenthรจses.
  • (I.e. Listes numรฉriques : Comparez directement les nombres, sans guillemets, pour obtenir des correspondances exactes.
  • ๐Ÿšซ NON INCLUS : Renvoie les lignes dont la valeur est absente de la liste fournie.
  • โš ๏ธ Piรจge NULL : Une valeur NULL ร  l'intรฉrieur de NOT IN peut renvoyer silencieusement zรฉro ligne.
  • ๐Ÿค– Requรชtes IA : Les assistants intรจgrent des clauses IN et signalent les valeurs NULL et les risques de performance.

PostgreSQL IN, NOT IN avec des exemples

Qu'est-ce que le PostgreSQL DANS?

L'opรฉrateur IN est utilisรฉ dans une clause WHERE pour vรฉrifier si une valeur est prรฉsente dans une liste d'autres valeurs. L'opรฉration IN permet de rรฉduire le nombre de conditions OR nรฉcessaires dans les instructions SELECT, UPDATE, INSERT ou DELETE.

Syntaxe

L'opรฉrateur IN prend la syntaxe suivante :

value IN (value_1, value_2, ...)

La valeur est la valeur que vous recherchez dans la liste.

Les value_1, value_2โ€ฆ sont les valeurs de la liste.

Si la valeur est trouvรฉe dans la liste, l'opรฉrateur renverra un vrai.

La liste peut รชtre un ensemble de nombres ou de chaรฎnes de caractรจres, ou mรชme le rรฉsultat de sortie d'une opรฉration. Instruction SELECT comme indiquรฉ ci-dessous:

value IN (SELECT value FROM table-name);

Lโ€™instruction placรฉe entre parenthรจses est appelรฉe sous-requรชte.

PostgreSQL EN AVEC LE CARACTรˆRE

Laissez-nous vous montrer comment utiliser l'opรฉrateur IN avec des valeurs de caractรจres.

Considรฉrez le tableau suivant:

Employรฉs :

PostgreSQL EN AVEC LE CARACTรˆRE

Exรฉcutons la requรชte suivante sur la table ci-dessus :

SELECT * FROM Employees WHERE name IN ('James John', 'Mercy Bush', 'Kate Joel');

Il renvoie le rรฉsultat suivant :

PostgreSQL Rรฉsultat avec caractรจre

Nous disposons d'une liste de trois noms. Nous cherchons ร  savoir si l'un de ces noms figure dans la colonne ยซ Nom ยป de la table ยซ Employรฉs ยป. Kate Joel a รฉtรฉ trouvรฉe dans une entrรฉe de la table et ses informations ont รฉtรฉ affichรฉes.

PostgreSQL EN Avec numรฉrique

Voyons maintenant comment utiliser lโ€™opรฉrateur IN avec des valeurs numรฉriques.

Considรฉrez le tableau des prix ci-dessous :

Le prix :

PostgreSQL EN Avec numรฉrique

Nous pouvons exรฉcuter la requรชte suivante sur la table :

SELECT * FROM Price WHERE price IN (200, 308, 250, 550);

Cela renvoie les รฉlรฉments suivants :

PostgreSQL EN Avec rรฉsultat numรฉrique

Nous avons crรฉรฉ une liste avec 4 valeurs numรฉriques. Nous vรฉrifions si nous pouvons faire correspondre l'une de ces valeurs avec les valeurs contenues dans la colonne prix du tableau Prix. Deux valeurs ont รฉtรฉ mises en correspondance et leurs dรฉtails ont รฉtรฉ renvoyรฉs.

Utiliser le NON Operator

L'opรฉrateur IN peut รชtre utilisรฉ avec l'opรฉrateur NOT. Il renvoie les valeurs introuvables dans la colonne spรฉcifiรฉe. Nous utiliserons le tableau des prix pour le dรฉmontrer.

SELECT * FROM Price WHERE price NOT IN (200, 400, 190, 230);

Cela renverra ce qui suit :

PostgreSQL Utilisation de l'opรฉrateur NOT

Nous avons crรฉรฉ une liste avec 4 valeurs numรฉriques. Nous vรฉrifions la colonne prix du tableau Prix pour les valeurs qui ne font pas partie de la liste. Deux valeurs, 250 et 300, n'ont pas รฉtรฉ trouvรฉes. Leurs coordonnรฉes ont donc รฉtรฉ restituรฉes.

Utiliser pgAdmin

En dehors de l'interprรฉteur de commandes SQL, les mรชmes requรชtes IN et NOT IN peuvent รชtre exรฉcutรฉes visuellement via l'interface pgAdmin.

Avec du caractรจre

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 de gauche, cliquez sur Bases de donnรฉes.
  2. Cliquez sur Dรฉmo.

Utiliser pgAdmin avec un personnage

ร‰tape 3) Tapez la requรชte dans l'รฉditeur de requรชtes :

SELECT * FROM Employees WHERE name IN ('James John', 'Mercy Bush', 'Kate Joel');

ร‰tape 4) Cliquez sur le bouton Exรฉcuter.

Utilisation de pgAdmin avec une requรชte de type caractรจre

Il devrait renvoyer ce qui suit :

Utilisation de pgAdmin avec rรฉsultat de type caractรจre

Avec numรฉrique

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 de gauche, cliquez sur Bases de donnรฉes.
  2. Cliquez sur Dรฉmo.

Utiliser pgAdmin avec numรฉrique

ร‰tape 3) Tapez la requรชte dans l'รฉditeur de requรชtes :

SELECT * FROM Price WHERE price IN (200, 308, 250, 550);

ร‰tape 4) Cliquez sur le bouton Exรฉcuter.

Utilisation de pgAdmin avec une requรชte numรฉrique

Il devrait renvoyer ce qui suit :

Utilisation de pgAdmin avec un rรฉsultat numรฉrique

Utiliser le NON Operator

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 de gauche, cliquez sur Bases de donnรฉes.
  2. Cliquez sur Dรฉmo.

Utilisation de l'opรฉrateur NOT dans pgAdmin

ร‰tape 3) Tapez la requรชte dans l'รฉditeur de requรชtes :

SELECT * FROM Price WHERE price NOT IN (200, 400, 190, 230);

ร‰tape 4) Cliquez sur le bouton Exรฉcuter.

Utilisation de l'opรฉrateur NOT dans les requรชtes pgAdmin

Il devrait renvoyer ce qui suit :

L'utilisation de l'opรฉrateur NOT donne un rรฉsultat dans pgAdmin

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

FAQ

In PostgreSQLLa commande EXISTS est souvent plus rapide que la commande IN sur les grandes sous-requรชtes, car elle s'arrรชte ร  la premiรจre correspondance. Pour les petites listes constantes, IN est simple et efficace. Testez les deux mรฉthodes avec EXPLAIN ANALYZE sur vos propres donnรฉes.

L'instruction NOT IN considรจre les valeurs NULL comme inconnues. Par consรฉquent, si la liste ou la sous-requรชte contient une valeur NULL, la condition entiรจre peut รชtre รฉvaluรฉe ร  ยซ inconnu ยป et ne renvoyer aucune ligne. Filtrez les valeurs NULL ou utilisez plutรดt NOT EXISTS.

L'opรฉrateur IN remplace les longues chaรฎnes de conditions OR par une seule clause lisible. WHERE id IN (1,2,3) รฉquivaut ร  WHERE id=1 OR id=2 OR id=3, mais est plus court, plus clair et plus facile ร  maintenir.

Oui. PostgreSQL L'instruction `x IN (a, b, c)` est considรฉrรฉe comme รฉquivalente ร  `x = ANY (ARRAY[a, b, c])`. Les deux instructions produisent le mรชme rรฉsultat et gรฉnรฉralement le mรชme plan d'exรฉcution.

Les assistants IA gรฉnรจrent des clauses IN ร  partir de langage courant, suggรจrent la liste de valeurs appropriรฉe et signalent les risques de valeurs NULL dans les clauses NOT IN. Ils rรฉรฉcrivent รฉgalement les requรชtes lentes et ajoutent des indications EXPLAIN pour optimiser leur fonctionnement.

Oui. Les outils AI Copilot dรฉtectent les conditions OU rรฉpรฉtรฉes sur une colonne et les restructurent en une seule liste IN, amรฉliorant ainsi la lisibilitรฉ et rรฉduisant le risque d'erreurs logiques.

Oui. Placez une clause SELECT entre parenthรจses : WHERE id IN (SELECT id FROM orders). La sous-requรชte, qui contient la liste des valeurs vรฉrifiรฉes par IN, renvoie la liste des valeurs correspondantes.

Pour les grandes tables, NOT EXISTS ou une jointure LEFT JOIN avec IS NULL est gรฉnรฉralement plus performant que NOT IN car PostgreSQL Il crรฉe une anti-jointure efficace. Assurez-vous รฉgalement que les colonnes comparรฉes sont indexรฉes.

Rรฉsumez cet article avec :