Maison >base de données >tutoriel mysql >Syntaxe d'utilisation de EXISTS et NOT EXISTS dans SQL
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!