PostgreSQL: Utilisation de la clause Where existe
Lorsqu'une requête SQL est utilisée dans une autre requête SQL, elle s'appelle une sous-requête. La requête compliquée peut être écrite facilement en divisant une grande requête en plusieurs sous-requêtes. La clause existant est utilisée avec une sous-requête dans une déclaration SQL. La sortie de l'existe dépend du nombre d'enregistrements renvoyés par la sous-requête mais ne dépend pas des valeurs des enregistrements. Le résultat de l'existence sera vrai si la sous-requête associée renvoie au moins une ligne. La façon dont vous pouvez utiliser existe et n'existe pas la clause dans certains, insérer, mettre à jour et supprimer les instructions sont affichées dans ce tutoriel en utilisant différents exemples.
Existe la syntaxe de la clause:
Sélectionnez COL1, COL2, COL3…Créer trois tables nommées entreprise, articles et clients et insérer certaines données. Exécutez la requête de sélection suivante pour afficher le contenu de ces tables.
Sélectionner * dans la société;Exemple-1: Utilisation de la clause existant dans la requête sélectionnée
a) existe
La requête suivante récupérera des enregistrements à partir de articles table basée sur entreprise tableau. La sous-requête recherche tous les enregistrements de entreprise table où company_id de entreprise la table est égale à company_id de articles table et la valeur de téléphone Le champ n'est pas vide. Il y a un record dans entreprise table qui n'a pas de numéro de téléphone et cet enregistrement sera omis de la sortie.
Sélectionnez item_id, nom, quantitéSortir:
L'enregistrement de LG n'a pas d'entrée de téléphone dans la table de l'entreprise. Il n'est donc pas apparu dans la sortie.
(b) n'existe pas
Ne pas exister la clause est opposée à la clause. La requête suivante récupérera ces enregistrements à partir de articles table lorsque la sous-requête renvoie fausse.
Sélectionnez item_id, nom, quantitéSortir:
Il n'y a pas d'enregistrement dans entreprise table où URL de site web est nul. Ainsi, la sortie de la sous-requête est fausse pour tous les enregistrements et tous les enregistrements de la table des éléments sont récupérés.
Exemple-2: Utilisation de la clause existant dans Insert Query
Selon la requête d'insertion suivante, les données seront insérées dans articles table quand company_id des deux entreprise et clients Les tables sont égales.
Insérer dans les articlesSortir:
Il y a trois entrées pour company_id Dans les clients, les valeurs sont 1 et 2. Ainsi, la sous-requête reviendra vrai pour trois fois et trois records seront insérés.
Exécutez la requête SELECT pour vérifier la table du contenu des éléments.
Exemple-3: Utilisation de la clause existant dans la requête de mise à jour
La requête suivante mettra à jour les enregistrements de articles table où company_id est 1 et la sous-requête renvoie vrai.
Mettre à jour les élémentsSortir:
Ici, la sous-requête reviendra vrai pour trois fois et company_id est 1 pour trois records. Trois enregistrements seront mis à jour après l'exécution de la requête de mise à jour.
Exécutez la requête SELECT pour vérifier la table du contenu des éléments.
Exemple-4: Utilisation de la clause existant dans la requête de suppression
La requête suivante supprimera ces enregistrements de articles table où company_id est 1 et la sous-requête renvoie vrai.
Supprimer les articlesSortir:
Il y a trois enregistrements avec la valeur 1 de company_id Et un enregistrement a une valeur de nom 'Pas affecter'. Ainsi, la condition sera vraie pour trois fois et supprimez trois enregistrements de articles tableau.
Exécutez la requête SELECT pour vérifier la table du contenu des éléments.
Hope, vous avez une idée claire d'utiliser la clause existant dans la requête SQL après avoir lu ce tutoriel.