Heim  >  Artikel  >  Datenbank  >  Analyse von MINUS, INTERSECT und UNION ALL von SQL-Anweisungen

Analyse von MINUS, INTERSECT und UNION ALL von SQL-Anweisungen

一个新手
一个新手Original
2017-10-17 10:10:331871Durchsuche

Drei Schlüsselwörter in der SQL-Anweisung: MINUS (Subtraktion), INTERSECT (Schnittpunkt) und UNION ALL (Vereinigung);

Jeder sollte das Konzept von Mengen in der Mittelschule gelernt haben, daher werde ich nicht auf Details eingehen. Diese drei Schlüsselwörter werden hauptsächlich zur Bearbeitung der Abfrageergebnisse der Datenbank verwendet, genau wie ihre chinesische Bedeutung: zwei Abfragen, MINUS dient dazu, das zweite Abfrageergebnis vom ersten Abfrageergebnis zu subtrahieren. Wenn es einen Schnittpunkt gibt, subtrahieren Sie den Schnittpunkt; andernfalls gibt es keinen Unterschied zum ersten Abfrageergebnis zwei Die Schnittmenge der Abfrageergebnisse, UNION ALL ist die Vereinigung zweier Abfragen

Obwohl die Funktion gleich ist Es kann mit einfachen SQL-Anweisungen implementiert werden, aber der Leistungsunterschied ist sehr groß: made_order hat insgesamt 230.000 Datensätze, charge_detail hat insgesamt 170.000 Datensätze:

Der Leistungsunterschied ist 15,956 Mal! Unternehmen, der Datenbankserver wird von uns nicht zu Tode geprügelt?
    SELECT order_id FROM made_order
  MINUS
  SELECT order_id FROM charge_detail
耗时:1.14 sec
  
  SELECT a.order_id FROM made_order a
   WHERE a.order_id NOT exists (
     SELECT order_id
     FROM charge_detail
     WHERE order_id = a.order_id
   )
耗时:18.19 sec


PS: Bei der Anwendung der Subtraktion, Schnittmenge und Addition zweier Mengen gelten strenge Anforderungen: 1. Die Felder der beiden Mengen muss klar sein (die Verwendung von * funktioniert nicht, es wird ein Fehler gemeldet); 2. Feldtyp Das Gleiche wie die Reihenfolge (die Namen können unterschiedlich sein), zum Beispiel: Feld 1 von Satz 1 ist NUMBER, Feld 2 ist VARCHAR, Dann muss Feld 1 von Satz 2 ebenfalls NUMBER sein und Feld 2 muss VARCHAR 3 sein. Wenn Sie die Ergebnisse sortieren möchten, können Sie nach der Mengenoperation eine weitere Abfrage hinzufügen und dann sortieren. Das vorherige Beispiel kann geändert werden in:

Das obige ist der detaillierte Inhalt vonAnalyse von MINUS, INTERSECT und UNION ALL von SQL-Anweisungen. 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