Maison  >  Article  >  base de données  >  Syntaxe d'utilisation de EXISTS et NOT EXISTS dans SQL

Syntaxe d'utilisation de EXISTS et NOT EXISTS dans SQL

王林
王林original
2024-02-19 23:08:06965parcourir

sql中exists,not exists的用法

L'utilisation de existe et n'existe pas en SQL nécessite des exemples de code spécifiques

En SQL, existe et n'existe pas sont une paire de prédicats couramment utilisés (prédicat), utilisés pour déterminer si une sous-requête (sous-requête) renvoie un ensemble de résultats. existe est utilisé pour vérifier si la sous-requête renvoie au moins une ligne de résultats, tandis que n'existe pas est utilisé pour vérifier si la sous-requête ne renvoie aucun résultat. La syntaxe de

exists est la suivante :

SELECT column1, column2, ...
FROM table
WHERE EXISTS (subquery);

la syntaxe de not exist est la suivante :

SELECT column1, column2, ...
FROM table
WHERE NOT EXISTS (subquery);

Ce qui suit utilise plusieurs exemples spécifiques pour introduire l'utilisation de existe et n'existe pas.

Exemple 1 : Rechercher des enregistrements avec des conditions spécifiques

Supposons que nous ayons une table nommée « employés » qui contient des informations sur les employés, y compris des colonnes telles que « id_employé », « prénom » et « nom_de famille ». Nous souhaitons retrouver toutes les informations sur les employés pour lesquels le poste « manager » existe.

SELECT employee_id, first_name, last_name
FROM employees
WHERE EXISTS (SELECT 1
              FROM employees
              WHERE job_title = 'manager'
                AND employees.employee_id = manager_id);

La sous-requête dans le code ci-dessus récupère les enregistrements avec le poste de « manager » de la table « employés ». La requête principale externe utilise le prédicat exist pour déterminer si la sous-requête renvoie au moins une ligne de résultats.

Exemple 2 : Rechercher des enregistrements qui n'ont pas de conditions spécifiques

Supposons maintenant que nous souhaitions trouver des informations sur les employés qui n'ont pas le poste de « manager ».

SELECT employee_id, first_name, last_name
FROM employees
WHERE NOT EXISTS (SELECT 1
                  FROM employees
                  WHERE job_title = 'manager'
                    AND employees.employee_id = manager_id);

La sous-requête dans le code ci-dessus récupère également les enregistrements avec le poste de « manager » de la table « employés ». La requête principale externe utilise le prédicat not exist pour déterminer si la sous-requête ne renvoie aucun résultat.

Exemple 3 : Comparaison des sous-requêtes

Les sous-requêtes avec existe et n'existe pas comme prédicats peuvent également être filtrées en utilisant d'autres conditions.

Supposons que nous souhaitions trouver des informations sur les employés ayant le salaire le plus élevé.

SELECT employee_id, first_name, last_name
FROM employees e1
WHERE NOT EXISTS (SELECT 1
                  FROM employees e2
                  WHERE e2.salary > e1.salary);

Dans le code ci-dessus, la sous-requête récupère les enregistrements avec un salaire supérieur à celui de l'employé actuel et utilise le prédicat not exist pour déterminer s'il n'existe aucun enregistrement qui remplisse les conditions.

Résumé :

existe et n'existe pas sont des prédicats couramment utilisés en SQL, utilisés pour vérifier si une sous-requête renvoie un jeu de résultats. existe est utilisé pour déterminer qu'au moins une ligne de résultats existe, et n'existe pas est utilisé pour déterminer qu'il n'y a aucun résultat. En utilisant existe et n'existe pas, nous pouvons écrire des instructions de requête plus flexibles pour répondre aux différents besoins de l'entreprise.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Comment vider le cache MySQLArticle suivant:Comment vider le cache MySQL