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)“.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle 11g-Version, Dell G3-Computer.
select name from student where sex = 'm' and mark exists(select 1 from grade where ...)
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:
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!