1. Aggregationsabfrage
1. Aggregationsfunktion (Anzahl, Summe, Durchschnitt...)
Gemeinsame statistische Summen, Berechnung von Gleichstandswerten und anderes Operationen können sein. Verwenden Sie Aggregatfunktionen, um dies zu erreichen. Gängige Aggregatfunktionen sind: ##🎜 🎜#
![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528071967244.png)
Beachten Sie, dass am Ende where- und order by-Anweisungen hinzugefügt werden können, auf denen diese Aggregatfunktionen basieren Diese Anweisungen fragen die Ergebnismenge ab. 🎜🎜## 🎜🎜#
Bei Verwendung von Aggregatfunktionen statistischer Spalten vermeiden Sie das Schreiben anderer Spalten, da sonst die erste Spalte bedeutungslos angezeigt wird
![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528071918321.png)
# 🎜🎜##🎜 🎜#
![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528071976252.png)
Hinweis: 1.count: Sie können count (*), count ( 0), count (1), um es ganz klar auszudrücken, es ist tatsächlich dasselbe, als würde man 1 aus der gesamten Tabelle auswählen. Die 0 und 1 werden in dieser Zählung einfach als Parameter übergeben. Wählen Sie dann 1 aus der Anzahl
2.sum , max, min und avg können nicht in * übergeben werden, Felder oder Ausdrücke müssen mit
3 übergeben werden. avg kann mit sum kombiniert werden und mehrere Aggregatfunktionen können zusammen verwendet werden#🎜🎜 ## 🎜🎜#2.GROUP BY-Klausel Verwenden Sie die GROUP BY-Klausel, um Gruppenabfragen für bestimmte Spalten durchzuführen. Muss erfüllt sein: Wenn Sie GROUP BY für eine Gruppierungsabfrage verwenden, muss das durch SELECT angegebene Feld das „Gruppierungsfeld“ sein und andere Felder müssen in die Aggregatfunktion einbezogen werden, wenn sie in SELECT angezeigt werden sollen.
Die Aggregationsfunktion hinter Select wird ausgeführt, nachdem Group by die Gruppierung abgeschlossen hat
![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528071970579.png)
Group by Die Essenz Eine der Anweisungen ist die Gruppierung, die häufig bei Aggregatabfragen verwendet wird ## 🎜🎜#
Die durch Auswählen angegebenen Felder müssen nach der Gruppierung vorhanden sein. Diejenigen, die nicht verfügbar sind, können nur in der Aggregatfunktion erscheinen, sonst treten Probleme auf
GROUP BY-Hinweise
1 Der Kern der Group by-Anweisung ist die Gruppierung, die häufig bei Aggregatabfragen
2 verwendet wird Da es eine Aggregatfunktion gibt, ist möglicherweise eine Gruppierung erforderlich.
3 Bei der Gruppierungsoperation ermöglicht die Abfrage das Gruppieren von Feldern und Aggregatfunktionen, um sicherzustellen, dass danach keine mehreren Zeilen vorhanden sind Gruppierung (z. B. Studenten-ID-Gruppierung, das Abfragefeld kann Studentennamen enthalten, da es nach der Gruppierung nach Studenten nur eine Zeile gibt)
4. Verwenden Sie den Ort, um die Bedingungen vor und nach der Gruppierung zu filtern Gruppierung (der Code wird nacheinander ausgeführt)
- #🎜🎜 #Ausführungsreihenfolge: ab > mit > ; eindeutige > Reihenfolge nach > limit#🎜 🎜#
- Die Ausführung beginnt von vorne, daher wird der Alias normalerweise hier genannt Benennen Sie es auch in select, aber select wird später ausgeführt und die zuvor benannten Orte werden nicht verwendet.
Limit wird immer am Ende ausgeführt ) von Schüler, wobei Punktzahl>60 nach Klassen-ID mit Klassen-ID6.Gruppieren nach dient dazu, doppelte Zeilen in einer Zeile zusammenzuführen# 🎜🎜 #
7. Bei der Gruppierung nach vielen Feldern werden diese möglicherweise nicht zusammengeführt, aber der Gruppierungseffekt wird erzielt und die Aggregatfunktion kann verwendet werden. ![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528072081002.png)
3.HAVING
GROUP BY-Klausel Wenn Sie nach der Gruppierung die gruppierten Ergebnisse bedingt filtern müssen, können Sie die WHERE-Anweisung nicht verwenden, sondern müssen HAVING verwenden. HAVING wird nach GROUP BY
ausgeführt2. Union-Abfrage ((Hervorhebung) mehrere Tabellen) die zweite Methode. Sie können beide verwenden, aber geben Sie der ersten den Vorrang, damit sie den nachfolgenden äußeren Verknüpfungen entspricht. Die innere Verknüpfung entspricht der Angabe der Verbindungsbedingung für das erhaltene kartesische Produkt
![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528072041308.png)
Wenn hier keine Gruppe vorhanden ist, wird nur eine Zeile wie die folgende angezeigt, was der Addition aller Punktzahlen aller Schüler entspricht . . Da wir die Gesamtpunktzahl jedes einzelnen Schülers benötigen, müssen wir diese zunächst nach dem Studierendenausweis gruppieren.
2. Äußere Verknüpfungen![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528072086711.png)
Äußere Verknüpfungen werden in linke äußere Verknüpfungen und rechte äußere Verknüpfungen unterteilt. Der linke äußere Join ist eine Verbindungsmethode, wenn die Tabelle auf der linken Seite vollständig angezeigt wird, wenn eine gemeinsame Abfrage ausgeführt wird. Der rechte äußere Join ist eine Verbindungsmethode, wenn die Tabelle auf der rechten Seite vollständig angezeigt wird, wenn eine gemeinsame Abfrage ausgeführt wird.
Hinweis:
![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528072079443.png)
Linker Join: Die Daten in der linken Tabelle werden nicht basierend auf
Joining-Bedingungen (der Teil danach, einschließlich und)![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528072023812.png)
gefiltert und angezeigt. Andere Bedingungen können weiterhin gefiltert werden, z später Wo und andere Bedingungen hinzufügen.
Wenn in der rechten Tabelle Daten und Werte vorhanden sind, die die Verbindungsbedingungen nicht erfüllen, werden für die Daten in der rechten Tabelle Null und in der linken Tabelle alle angezeigt
- Syntax: (Hinweis: Ein (kann auch gefolgt werden von where)
- Die gleiche Abfragemethode kann dieses Mal die Informationen des 8. Schülers anzeigen, dessen Punktzahl leer ist. Alle Daten in der linken Tabelle, also in der Schülertabelle angezeigt werden und von der Verbindungsbedingung stu.id = sco.student_id nicht betroffen sein. Die Auswirkung dieser Verbindungsbedingung besteht darin, dass die Informationen des Studenten „Ausländer, der Chinesisch lernt“ nicht angezeigt werden können, wenn es sich um die vorherige innere Verbindung
handelt angezeigt werden
, da es in der Sco-Tabelle keinen solchen Studenten „Ausländer, der Chinesisch lernt“ gibt.
3. Selbstverknüpfung
Selbstverknüpfung bedeutet, sich zur Abfrage mit derselben Tabelle zu verbinden. ![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528072150489.png)
Verwendungsszenario: Vergleichen Sie mehrere Zeilen in derselben Tabelle.
Hinweis: Self-Join-Abfragen können auch mit der Join-On-Anweisung abgefragt werden. 4. Unterabfrage Unterabfrage bezieht sich auf eine in andere SQL-Anweisungen eingebettete SELECT-Anweisung, auch verschachtelte Abfrage genannt
Abfrage und Klassenkameraden von „Möchten keinen Abschluss machen“-Studenten: (selbst beitreten)
Mehrzeilige Unterabfrage: Eine Unterabfrage, die mehrere Datensatzzeilen zurückgibt (häufig verwendet)
Fall: Fragen Sie die Punkteinformationen von „Chinesisch“- oder „Englisch“-Kursen ab: (innere Verbindung)
![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528072163781.png)
Hier Gruppieren nach spielt nicht die Rolle des Zusammenführens, sondern die Rolle des Gruppierens und alle vereint. Bei Verwendung von UNION und UNION ALL müssen
Felder im Ergebnissatz der Abfrage vorher und nachher konsistent ![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528072168094.png)
sein.
**In manchen Fällen können mehrere Tabellen nicht verknüpft werden, Sie möchten aber Daten im selben Feld abfragen
**Union ist effizienter als or
![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528072198960.png)
Union![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528072131152.png)
Dieser Operator wird verwendet, um zwei zu erhalten Die Vereinigung von Ergebnismengen. Dieser Operator entfernt automatisch doppelte Zeilen im Ergebnissatz und dedupliziert automatisch, wenn der Dateninhalt genau gleich ist.
Fall: Fragen Sie die Kurse mit einer ID von weniger als 3 ab oder der Name ist „Englisch“:
union all
Dieser Operator wird verwendet, um die Vereinigung zweier Ergebnismengen zu erhalten. Wenn dieser Operator verwendet wird, werden doppelte Zeilen im Ergebnissatz nicht entfernt. (Wenn die erhaltenen Daten genau gleich sind, werden sie angezeigt und es wird keine Duplizierung durchgeführt)
Fall: Abfrage nach Kursen mit einer ID kleiner als 3 oder mit dem Namen „Java“
#🎜🎜 #
![Beispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen](https://img.php.cn/upload/article/000/887/227/168528072245512.png)
Das obige ist der detaillierte Inhalt vonBeispielanalyse von MySQL-Aggregationsabfrage- und Union-Abfrageoperationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!