Heim  >  Artikel  >  Datenbank  >  Was ist die Verwendung von nicht in Oracle vorhanden?

Was ist die Verwendung von nicht in Oracle vorhanden?

WBOY
WBOYOriginal
2022-03-03 10:46:2726695Durchsuche

In Oracle wird „nicht vorhanden“ verwendet, um zu bestimmen, ob eine Klausel eine Ergebnismenge zurückgibt. Wenn die Klausel keine Ergebnismenge zurückgibt, ist sie wahr „Wählen Sie * aus Daul aus, wo es nicht existiert (Untersatz-Abfragebedingung)“.

Was ist die Verwendung von nicht in Oracle vorhanden?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle 11g-Version, Dell G3-Computer.

Was ist die Verwendung von „nicht vorhanden“ in Oracle? Der Schwerpunkt liegt darauf, ob die Ergebnismenge zurückgegeben werden soll, und es ist nicht erforderlich, zu wissen, was zurückgegeben wird Wenn die Klausel die Ergebnismenge zurückgibt, wird die Vorhanden-Bedingung als wahr betrachtet. Beachten Sie nun, dass das zurückgegebene Feld immer 1 ist. Wenn es in „Wähle 2 aus Klasse, wo...“ geändert wird, ist das zurückgegebene Feld 2. Dies Zahl ist bedeutungslos. Der Existes-Klausel ist es also nicht wichtig, was zurückgegeben wird, sondern ob eine Ergebnismenge zurückgegeben wird.

Der größte Unterschied zwischen „exists“ und „in“ besteht darin, dass die in-Klausel nur ein Feld zurückgeben kann, wie zum Beispiel:

  select name from student where sex = 'm' and mark exists(select 1 from grade where ...)

Die in-Klausel gibt drei Felder zurück, was jedoch falsch ist zurückzugebendes Feld. Sie können einfach zwei beliebige Felder in 1, 2 und 3 entfernen.

Und nicht existiert und nicht in sind jeweils die Gegensätze von existiert und in.

existiert (SQL gibt die Ergebnismenge als wahr zurück)

  • nicht vorhanden (SQL gibt die Ergebnismenge nicht als wahr zurück)

  • Der Prozess von „Nicht existiert“ wird unten ausführlich beschrieben:

  • ist wie folgt folgt:

Tabelle A

ID-NAME

1 A1

2 A2

3 A3

Tabelle B

ID-AID-NAME

1 1 1 B1

2 2 B2

3 2 B3

Tabelle A und Tabelle B sind eine Eins-zu-Viele-Beziehung A.ID => ist umgekehrt

  select name from student where sex = 'm' and mark in (select 1,2,3 from grade where ...)

Das Ausführungsergebnis ist

3 A3

EXISTS = IN, die Bedeutung ist dieselbe, aber es gibt einen leichten Unterschied in der Syntax. Es scheint, dass die Effizienz der Verwendung von IN geringer ist, was möglicherweise der Fall ist der Grund, warum der Index nicht ausgeführt wird.

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE A.ID=B.AID)

NOT EXISTS = NOT IN, die Bedeutung ist dieselbe, aber es gibt einen kleinen Unterschied in der Syntax

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无值返回真所以没有数据

Ja Manchmal werden wir auf Situationen stoßen, in denen wir eine bestimmte Spalte ohne auswählen müssen Duplizieren, eine bestimmte Spalte als Auswahlbedingung verwenden und andere Spalten normal ausgeben

Empfohlenes Tutorial: „

Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonWas ist die Verwendung von nicht in Oracle vorhanden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn