Maison base de données tutoriel mysql Explication détaillée des exemples d'utilisation de Existe dans SQL

Explication détaillée des exemples d'utilisation de Existe dans SQL

May 15, 2018 pm 05:48 PM
exists sql 用法

Cet article présente principalement l'utilisation d'Exists en SQL. Il est très bon et a une valeur de référence. Les amis qui en ont besoin peuvent s'y référer

Par exemple, il y a une requête dans la base de données Northwind comme

. 🎜>
SELECT c.CustomerId,CompanyName FROM Customers c
WHERE EXISTS(
SELECT OrderID FROM Orders o WHERE o.CustomerID=c.CustomerID)
Copier après la connexion

Comment fonctionne EXISTS ici ? La sous-requête renvoie le champ OrderId, mais la requête externe recherche les champs CustomerID et CompanyName. Ces deux champs ne sont certainement pas dans OrderID. Comment correspondent-ils ?

EXISTS est utilisé pour vérifier si la sous-requête renverra au moins une ligne de données. La sous-requête ne renvoie réellement aucune donnée, mais renvoie True ou False.

EXISTS spécifie une sous-requête à détecter. existence de la ligne.

Syntaxe : sous-requête EXISTS

Paramètres : la sous-requête est une instruction SELECT restreinte (la clause COMPUTE et le mot-clé INTO ne sont pas autorisés).

Type de résultat : Booléen Renvoie VRAI si la sous-requête contient des lignes, FLASE sinon.

Exemple de table A : TableIn Exemple de table B : TableEx

(1) L'utilisation de NULL dans la sous-requête renvoie toujours le résultat. L'ensemble

select * from TableIn where exists(select null)
Copier après la connexion

est équivalent à : select * from TableIn


(2). Notez que les deux requêtes renvoient les mêmes résultats.

select * from TableIn where exists(select BID from TableEx where BNAME=TableIn.ANAME)
select * from TableIn where ANAME in(select BNAME from TableEx)
Copier après la connexion

(3). Comparez les requêtes en utilisant EXISTS et = ANY. Notez que les deux requêtes renvoient les mêmes résultats.

select * from TableIn where exists(select BID from TableEx where BNAME=TableIn.ANAME)
select * from TableIn where ANAME=ANY(select BNAME from TableEx)
Copier après la connexion

NOT EXISTS fait exactement le contraire d'EXISTS. Si la sous-requête ne renvoie aucune ligne, la clause WHERE dans NOT EXISTS est satisfaite.

Conclusion :

La valeur de retour de la clause EXISTS (y compris NOT EXISTS) est une valeur BOOL. Il existe une instruction de sous-requête (SELECT ... FROM...) dans EXISTS, que j'appelle l'instruction de requête interne d'EXIST. L'instruction de requête qu'il contient renvoie un ensemble de résultats. La clause EXISTS renvoie une valeur booléenne selon que le jeu de résultats de l'instruction de requête qu'elle contient est vide ou non vide.

Une façon courante de le comprendre est la suivante : remplacez chaque ligne de la table de requête externe par la requête interne en tant que test. Si le résultat renvoyé par la requête interne est une valeur non nulle, la clause EXISTS renvoie TRUE. .Cette ligne peut être la ligne de résultat de la requête externe, sinon elle ne peut pas être utilisée comme résultat.

L'analyseur examinera d'abord le premier mot de l'instruction. Lorsqu'il constatera que le premier mot est le mot-clé SELECT, il passera au mot-clé FROM, puis trouvera le nom de la table via le mot-clé FROM et le mettra. La table est chargée en mémoire. L'étape suivante consiste à rechercher le mot-clé WHERE. S'il ne peut pas être trouvé, il reviendra à SELECT pour trouver l'analyse du champ. Si WHERE est trouvé, il analysera les conditions qu'il contient. Une fois terminé, il reviendra à SELECT pour. analyser le terrain. Enfin, une table virtuelle est formée.

Ce qui suit le mot clé WHERE est une expression conditionnelle. Une fois l'expression conditionnelle calculée, il y aura une valeur de retour, qui est différente de zéro ou 0. Non nulle signifie vrai (vrai) et 0 signifie faux (faux). De la même manière, la condition après WHERE a également une valeur de retour, vraie ou fausse, pour déterminer s'il faut exécuter SELECT ensuite.

L'analyseur trouve d'abord le mot-clé SELECT, puis passe au mot-clé FROM pour importer la table STUDENT dans la mémoire, et trouve le premier enregistrement via le pointeur, puis trouve le mot-clé WHERE pour calculer son expression conditionnelle, si c'est vrai, chargez ensuite cet enregistrement dans une table virtuelle et le pointeur pointe vers l'enregistrement suivant. Si faux, le pointeur pointe directement vers l’enregistrement suivant sans effectuer d’autres opérations. Récupérez toujours la table entière et renvoyez la table virtuelle récupérée à l'utilisateur. EXISTS fait partie d'une expression conditionnelle, qui a également une valeur de retour (vrai ou faux).

Avant d'insérer un enregistrement, vous devez vérifier si l'enregistrement existe déjà. L'opération d'insertion ne sera effectuée que lorsque l'enregistrement n'existe pas. Vous pouvez empêcher l'insertion d'enregistrements en double en utilisant l'instruction conditionnelle EXISTS.

INSERT INTO TableIn (ANAME,ASEX) 
SELECT top 1 '张三', '男' FROM TableIn
WHERE not exists (select * from TableIn where TableIn.AID = 7)
Copier après la connexion

Concernant l'efficacité d'utilisation de EXISTS et IN, il est généralement plus efficace d'utiliser exist que in, car IN n'utilise pas d'indexation, mais l'utilisation spécifique dépend de la situation réelle :

IN Convient aux situations où l'apparence est grande mais la surface intérieure est petite ; EXISTS convient aux situations où l'apparence est petite mais la surface intérieure est grande.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la différence entre HQL et SQL dans le framework Hibernate ? Quelle est la différence entre HQL et SQL dans le framework Hibernate ? Apr 17, 2024 pm 02:57 PM

HQL et SQL sont comparés dans le framework Hibernate : HQL (1. Syntaxe orientée objet, 2. Requêtes indépendantes de la base de données, 3. Sécurité des types), tandis que SQL exploite directement la base de données (1. Normes indépendantes de la base de données, 2. Exécutable complexe requêtes et manipulation de données).

Utilisation de l'opération de division dans Oracle SQL Utilisation de l'opération de division dans Oracle SQL Mar 10, 2024 pm 03:06 PM

"Utilisation de l'opération de division dans OracleSQL" Dans OracleSQL, l'opération de division est l'une des opérations mathématiques courantes. Lors de l'interrogation et du traitement des données, les opérations de division peuvent nous aider à calculer le rapport entre les champs ou à dériver la relation logique entre des valeurs spécifiques. Cet article présentera l'utilisation de l'opération de division dans OracleSQL et fournira des exemples de code spécifiques. 1. Deux méthodes d'opérations de division dans OracleSQL Dans OracleSQL, les opérations de division peuvent être effectuées de deux manières différentes.

Comparaison et différences de syntaxe SQL entre Oracle et DB2 Comparaison et différences de syntaxe SQL entre Oracle et DB2 Mar 11, 2024 pm 12:09 PM

Oracle et DB2 sont deux systèmes de gestion de bases de données relationnelles couramment utilisés, chacun possédant sa propre syntaxe et ses propres caractéristiques SQL. Cet article comparera et différera la syntaxe SQL d'Oracle et de DB2, et fournira des exemples de code spécifiques. Connexion à la base de données Dans Oracle, utilisez l'instruction suivante pour vous connecter à la base de données : CONNECTusername/password@database Dans DB2, l'instruction pour vous connecter à la base de données est la suivante : CONNECTTOdataba.

Explication détaillée de la fonction Définir la balise dans les balises SQL dynamiques MyBatis Explication détaillée de la fonction Définir la balise dans les balises SQL dynamiques MyBatis Feb 26, 2024 pm 07:48 PM

Interprétation des balises SQL dynamiques MyBatis : explication détaillée de l'utilisation des balises Set MyBatis est un excellent cadre de couche de persistance. Il fournit une multitude de balises SQL dynamiques et peut construire de manière flexible des instructions d'opération de base de données. Parmi elles, la balise Set est utilisée pour générer la clause SET dans l'instruction UPDATE, qui est très couramment utilisée dans les opérations de mise à jour. Cet article expliquera en détail l'utilisation de la balise Set dans MyBatis et démontrera ses fonctionnalités à travers des exemples de code spécifiques. Qu'est-ce que Set tag Set tag est utilisé dans MyBati

Que signifie l'attribut d'identité dans SQL ? Que signifie l'attribut d'identité dans SQL ? Feb 19, 2024 am 11:24 AM

Qu'est-ce que l'identité en SQL ? Des exemples de code spécifiques sont nécessaires. En SQL, l'identité est un type de données spécial utilisé pour générer des nombres à incrémentation automatique. Il est souvent utilisé pour identifier de manière unique chaque ligne de données dans une table. La colonne Identité est souvent utilisée conjointement avec la colonne clé primaire pour garantir que chaque enregistrement possède un identifiant unique. Cet article détaillera comment utiliser Identity et quelques exemples de code pratiques. La manière de base d'utiliser Identity consiste à utiliser Identit lors de la création d'une table.

Analyser l'utilisation et la classification des commentaires JSP Analyser l'utilisation et la classification des commentaires JSP Feb 01, 2024 am 08:01 AM

Classification et analyse de l'utilisation des commentaires JSP Les commentaires JSP sont divisés en deux types : commentaires sur une seule ligne : se terminant par, une seule ligne de code peut être commentée. Commentaires multilignes : commençant par /* et se terminant par */, vous pouvez commenter plusieurs lignes de code. Exemple de commentaire sur une seule ligne Exemple de commentaire sur plusieurs lignes/**Ceci est un commentaire sur plusieurs lignes*Peut commenter plusieurs lignes de code*/Utilisation des commentaires JSP Les commentaires JSP peuvent être utilisés pour commenter le code JSP afin de le rendre plus facile à lire

Comment résoudre l'erreur 5120 dans SQL Comment résoudre l'erreur 5120 dans SQL Mar 06, 2024 pm 04:33 PM

Solution : 1. Vérifiez si l'utilisateur connecté dispose des autorisations suffisantes pour accéder ou utiliser la base de données, et assurez-vous que l'utilisateur dispose des autorisations appropriées ; 2. Vérifiez si le compte du service SQL Server est autorisé à accéder au fichier spécifié ou ; dossier et assurez-vous que le compte dispose des autorisations suffisantes pour lire et écrire le fichier ou le dossier ; 3. Vérifiez si le fichier de base de données spécifié a été ouvert ou verrouillé par d'autres processus, essayez de fermer ou de libérer le fichier et réexécutez la requête ; . Essayez en tant qu'administrateur, exécutez Management Studio en tant que etc.

Utilisation de la fonction WPSdatedif Utilisation de la fonction WPSdatedif Feb 20, 2024 pm 10:27 PM

WPS est une suite logicielle bureautique couramment utilisée et la fonction de table WPS est largement utilisée pour le traitement des données et les calculs. Dans le tableau WPS, il existe une fonction très utile, la fonction DATEDIF, qui permet de calculer le décalage horaire entre deux dates. La fonction DATEDIF est l'abréviation du mot anglais DateDifference. Sa syntaxe est la suivante : DATEDIF(start_date,end_date,unit) où start_date représente la date de début.

See all articles