Maison > base de données > Oracle > le corps du texte

A quoi sert ne pas exister dans Oracle

WBOY
Libérer: 2022-03-03 10:46:27
original
26717 Les gens l'ont consulté

Dans Oracle, « n'existe pas » est utilisé pour déterminer si une clause renvoie un ensemble de résultats. Si la clause renvoie un ensemble de résultats, elle est fausse. Si la clause ne renvoie pas d'ensemble de résultats, elle est vraie. "sélectionnez * à partir de Daul là où il n'existe pas (condition de requête de sous-phrase)".

A quoi sert ne pas exister dans Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.

À quoi sert not exist dans Oracle ?

exists : l'accent est mis sur l'opportunité de renvoyer l'ensemble de résultats, et il n'est pas nécessaire de savoir ce qui est renvoyé. Par exemple :

  select name from student where sex = 'm' and mark exists(select 1 from grade where ...)
Copier après la connexion

Tant que le guide existe. La clause renvoie le jeu de résultats, alors la condition existe est considérée comme vraie. Maintenant, veuillez noter que le champ renvoyé est toujours 1. S'il est modifié par "sélectionner 2 à partir de la note où...", alors le champ renvoyé est 2. Ceci le nombre n’a aucun sens. Ainsi, la clause exist ne se soucie pas de ce qui est renvoyé, mais de savoir si un jeu de résultats est renvoyé.

La plus grande différence entre exist et in est que la clause in ne peut renvoyer qu'un seul champ, par exemple :

  select name from student where sex = 'm' and mark in (select 1,2,3 from grade where ...)
Copier après la connexion

La clause in renvoie trois champs, ce qui est incorrect. La clause existe n'en autorise qu'un. champ à renvoyer. Vous pouvez simplement sélectionner deux champs quelconques dans 1, 2 et 3.

Et ne pas exister et pas dans sont les opposés de existe et dans respectivement.

  • existe (sql renvoie le jeu de résultats comme vrai)

  • n'existe pas (sql ne renvoie pas le jeu de résultats comme vrai)

Le processus de non-existence est décrit en détail ci-dessous :

est comme suit :

Tableau A

ID NOM

1 A1

2 A2

3 A3

Tableau B

ID AID NOM

1 1 1 B1

2 2 B2

3 2 3

Tableau A et le tableau B sont une relation 1 à plusieurs A.ID => B.AID

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE A.ID=B.AID)
Copier après la connexion

Le résultat de l'exécution est

1 A1

2 A2

La raison peut être analysée comme suit

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=1)
--->SELECT * FROM B WHERE B.AID=1有值返回真所以有数据
SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=2)
--->SELECT * FROM B WHERE B.AID=2有值返回真所以有数据
SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=3)
--->SELECT * FROM B WHERE B.AID=3无值返回真所以没有数据
Copier après la connexion

N'EXISTE PAS C'est le dans l'autre sens

SELECT ID,NAME FROM A WHERE NOT EXIST (SELECT * FROM B WHERE A.ID=B.AID)
Copier après la connexion

Le résultat de l'exécution est

3 A3

EXISTS = IN, la signification est la même mais il y a une légère différence de syntaxe Il semble que l'efficacité de l'utilisation de IN soit moindre, ce qui peut en être la raison. pourquoi l'index ne sera pas exécuté.

SELECT ID,NAME FROM A  WHERE ID IN (SELECT AID FROM B)
Copier après la connexion

NOT EXISTS = NOT IN, la signification est la même mais il y a une légère différence de syntaxe

SELECT ID,NAME FROM A WHERE ID NOT IN (SELECT AID FROM B)
Copier après la connexion

Oui Parfois, nous rencontrerons des situations où nous devons sélectionner une certaine colonne sans duplication, utilisez une certaine colonne comme condition de sélection et d'autres colonnes à afficher normalement

Tutoriel recommandé : "Tutoriel vidéo Oracle"

.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal