1. Einfacher DatenabrufDie Studententabelle im Blog-Inhalt lautet: 1.1. Abrufen einer einzelnen Spalte
1.2. Mehrere Spalten abrufen
1.3. Alle Spalten abrufen
1.4. Abrufen unterschiedlicher Zeilen
Wenn wir beispielsweise überprüfen möchten, wie viele Geschlechter es in einer Klasse gibt, müssen wir nicht das Geschlecht jedes einzelnen Schülers anzeigen, sondern nur die unterschiedlichen Geschlechter. Das heißt, „distinct“ gibt einen eindeutigen Wert zurück. Hier ist ein Punkt zu beachten: Das Schlüsselwort distinct wird auf alle Spalten angewendet, nicht nur auf die Spalte davor. Wenn zwei Spalten angegeben sind, werden alle Zeilen erkannt, es sei denn, die beiden angegebenen Spalten sind unterschiedlich. 1.5. Suchergebnisse einschränken
Normalerweise geben Select-Anweisungen die Anzahl der übereinstimmenden Zeilen zurück. Wir können „limit“ verwenden, um die Anzahl der zurückgegebenen Zeilen zu begrenzen. Beispielsweise kann das Select-Ergebnis 10 Zeilen zurückgeben, und wir benötigen nur die ersten 5 Zeilen. Daher können wir den Parameter nach „limit“ als 5 verwenden. Wenn das Select 4 Zeilen zurückgibt und „limit“ 5 Zeilen beträgt, werden 4 Zeilen zurückgegeben. Natürlich können nach dem Limit zwei Parameter stehen und es gibt zwei Möglichkeiten, diese zu schreiben:
Dies bedeutet, dass ausgehend von der durch die Nummer 1 dargestellten Zeilennummer die Zeilennummer 2 abgerufen wird. Die zweite Schreibweise wird nach MySQL 5 unterstützt. Beachten Sie, dass die erste abgerufene Zeile die Zeile 0 und nicht die Zeile 1 ist. 1.6. Verwenden Sie den vollqualifizierten Tabellennamen für die Suche
2. Daten sortieren und abrufen2.1. Grundlegende Syntax verwenden nach Stichwort sortieren Die beiden Spaltennamen können unterschiedlich sein Wir können die Gehälter der Mitarbeiter täglich sortieren, aber einige Mitarbeiter haben das gleiche Gehalt. Auf diese Weise können wir die Gehälter nach Alter usw. sortieren. Dies ist eine Sortierung nach mehreren Spalten, nämlich:
Dies bedeutet, dass wenn Spalte 1 konsistent ist, nach Spalte 2 sortiert wird. Wenn Spalte 1 inkonsistent ist, wird nicht nach Spalte 2 sortiert. 2.2. Sortierrichtung festlegen Die Sortierung, über die wir oben gesprochen haben, ist eigentlich die Standardsortierung, die standardmäßig in aufsteigender Reihenfolge erfolgt (Buchstaben von „A“ bis „Z“, Zahlen von klein bis groß).
Was also sollten wir mit mehreren Sortierregeln tun? Das heißt, wenn wir die Schüler einer Klasse in absteigender Reihenfolge nach ihren Gesamtpunktzahlen sortieren, werden diejenigen mit den gleichen Gesamtpunktzahlen auch in absteigender Reihenfolge nach ihren Chinesischpunktzahlen sortiert. Hier sollten wir darauf achten Das Schlüsselwort desc gilt nur für die Spalte, die ihm direkt vorangeht. Wenn wir also nach mehreren Feldern sortieren müssen, müssen wir nur die entsprechenden Sortierregeln nach den entsprechenden Feldern schreiben. Wenn wir beispielsweise beide Felder in absteigender Reihenfolge benötigen:
Lassen Sie uns basierend auf dem, was wir oben gelernt haben, ein Beispiel machen:
3. Filterdaten abrufen3.1 Verwenden einer einfachen Where-Klausel
wobei es sich um einen speziellen Operator handelt:
Wo kann eine Nullwertprüfung durchgeführt werden:
Beachten Sie, dass hier „is“ anstelle von „=“ verwendet wird. 3.2 Kombinieren von Where-Klauseln
Funktion: und muss die Bedingungen auf beiden Seiten von und gleichzeitig erfüllen; oder erfüllt die Bedingung nur auf einer Seite von oder. in wird verwendet, um den Bereich der Bedingungen anzugeben; nicht wird verwendet, um den Inhalt der Bedingung zu negieren. Nehmen wir als Beispiel die Studententabelle:
2. oder: Wir suchen nach den Namen von Studierenden, die älter als 19 Jahre sind oder deren Englisch-Ergebnisse über 90 liegen.
3.in: Wir finden die Namen von Schülern im Alter von 18 und 19
4.not: Wir suchen nach Namen von Schülern, die nicht 18 oder 19 Jahre alt sind.
5. Wir finden alle Informationen zu Schülern, die jünger als 20 Jahre sind, und sortieren sie in absteigender Reihenfolge ihrer Mathenoten, nur die zweite Zeile:
Wir achten auf die Reihenfolge der Schlüsselwörter und die Bedeutung der Parameter nach dem Limit. 3.3 Verwendung von Platzhaltern Platzhalter: Sonderzeichen, die zum Abgleichen eines Teils eines Werts verwendet werden.
Nehmen wir als Beispiel die Studententabelle:
Es gibt zwei Ergebnisse: Cuihua und Ruhuasiyu. % stimmt nur mit einer Seite überein (unabhängig von der Zeichenfolgelänge). Wenn es nur „%hua“ ist, wird Ruhuasiyu nicht gefunden. Wenn wir „ruhuasiyu“ finden möchten, können wir natürlich auch Folgendes tun:
2._: Wir suchen den herausragenden Schüler Ruhuasiyu:
4. Verwenden Sie reguläre Ausdrücke, um Daten abzurufenReguläre Ausdrücke sind spezielle Zeichenfolgen, die zum Abgleichen von Text verwendet werden. Sie vergleichen ein Muster (regulärer Ausdruck) mit einer Textzeichenfolge. Allgemeine Symbole in regulären Ausdrücken:
Schlüsselwörter: regulärer Ausdruck Nehmen wir zum Beispiel die Studententabelle: „Like“ stimmt mit der gesamten Zeichenfolge überein, während „regexp“ mit einer Teilzeichenfolge übereinstimmt. Zum Beispiel: Wählen Sie den Namen des Studenten aus, wobei der andere Name beispielsweise „1“ ist. Wir ersetzen like durch regexp: wähle sname aus student, wobei othername regulärer Ausdruck "1" ist Jetzt haben Sie ein klares Verständnis des Unterschieds. 2 Wählen Sie Sname vom Studenten aus, wobei der chinesische reguläre Ausdruck „.8“ lautet. 3. wähle sname vom Studenten, wobei othername der reguläre Ausdruck „1 ton|2“ ist 4. wähle sname vom Studenten, wo othername regulärer Ausdruck „[1|2] ton“ Tatsächlich ist das oben genannte gleichbedeutend mit wähle sname vom Studenten, wobei othername der reguläre Ausdruck „1 ton|2 ton“ ist wähle sname aus student wo othername regulärer Ausdruck „[az]“ 6. Wählen Sie Sname vom Studenten aus, wobei Othername der reguläre Ausdruck „\\“ ist. Die Sonderzeichen, die wir finden, wie \, [,] usw., können mit \\ maskiert werden. 7. Anstatt die Studententabelle als Beispiel zu verwenden, nehmen Achten Sie auf diesen Satz:? Entspricht 0 oder 1 Vorkommen eines beliebigen vorangehenden Zeichens 8.{n} Nehmen Sie ein weiteres Beispiel aus dem Buch (das Gleiche gilt für die anderen Klammern): Hier ist eine passende Zeichenklasse: 9. Natürlich kann sich Hier ist ein Beispiel, um eine Verneinung auszudrücken: wähle sname aus student wo othername regulärer Ausdruck “^[^a1]” Das erste ^ ist der Anfang der Einschränkung und das zweite ^ ist eine Negation. 10. Noch etwas: Groß-/Kleinschreibung ignorierende Suche Schlüsselwörter: binär Bei den Zeichenfolgen, die wir normalerweise abfragen, wird die Groß-/Kleinschreibung ignoriert. Daher können wir die Groß-/Kleinschreibung auch durch Binärcode ignorieren. Auswählen + Spaltenname (kann mehrere Spalten sein) + Von + Tabellenname + Wo + Spaltenname + Regulärer Ausdruck + Binär + Regulärer Ausdruck Der Rest ist nicht so wichtig, probieren Sie es selbst aus 5. Berechnete Felder abrufen5.1 Verwenden von Spleißfeldern
Wenn beispielsweise ein Mathematiklehrer die Anfrage hat, alle Mathematiknoten der Schüler im Format „Mathenote (Name)“ auszudrucken, dann Wählen Sie concat(smath,"(",sname,")") aus Student Laufergebnisse: 5.2 Aliase verwenden
Am Beispiel von 5.1 SELECT CONCAT(LTRIM(smath),"(",sname,")") AS "Studentenname" von student Ergebnis: AS kann weggelassen werden, und das obige Beispiel kann auch geschrieben werden als
5.3 Arithmetische Berechnungen durchführenBeispielsweise können wir die Gesamtpunktzahl und den Namen jedes Schülers ermitteln: SELECT sname als „姓名“, smath+chinese+senglish als „总成绩“ vom Studenten Laufergebnisse: 6. Verwenden Sie Funktionen zum Abrufen von Daten6.1 Allgemeine Textverarbeitungsfunktionen:Nehmen wir als Beispiel Upper. Wir verwenden die Upper-Funktion, um den Alias unserer Klassenkameraden abzufragen:
Laufergebnisse: 6.2 Datums- und Zeitverarbeitungsfunktionen:Datumsformat: Nehmen wir als Beispiele einige wichtige Funktionen: 1.now(): Gibt das aktuelle Systemdatum und die aktuelle Systemzeit zurück
Laufergebnisse: 2.curdate(): Gibt das aktuelle Systemdatum ohne Uhrzeit zurück
Laufergebnisse: 3.curtime(): Gibt die aktuelle Zeit ohne Datum zurück
Laufergebnisse: 4. YEAR(), Hour() usw.: Holen Sie sich den angegebenen Teil
Laufergebnisse: 5. Konvertieren Sie für die Funktion date_format() die aktuelle Uhrzeit in einen String:
Laufergebnisse: Für die Konvertierung eines Strings in ein Datum gibt es eine entsprechende Funktion:
Laufergebnisse: 6.3 Numerische Verarbeitungsfunktionen:6.4 Aggregatfunktionen:1. Beispiel für die Funktion AVG(): Nehmen wir als Beispiel die Schülertabelle. Wir möchten die durchschnittliche Mathenote der Schüler ermitteln.
Laufergebnisse: 2. COUNT-Funktion Die allgemeine COUNT()-Funktion hat zwei Verwendungszwecke
Anwendungsbeispiele:
Laufergebnisse: 3. Unterschiedliche Werte angeben Schlagwörter unterscheidbar Wenn wir herausfinden, wie viele unterschiedliche Altersgruppen es in der Schülertabelle gibt;
Laufergebnisse: 4. Hinweis
7. Gruppenabrufdaten7.1. Einfache GruppierungSchlagwörter Gruppieren nach Nehmen wir ein Beispiel:
Laufergebnisse: Notiz: 1. Wenn in der Gruppe ein Nullwert vorhanden ist, wird Null als Gruppe zurückgegeben. Wenn mehrere Nullwerte vorhanden sind, werden sie zusammengefasst. 7.2 Gruppen filtern:
Wir zählen beispielsweise die Anzahl der Jungen in der Schülertabelle, deren Mathematiknoten über 80 liegen
Laufergebnisse: Der Unterschied zwischen „wo“ und „haben“:
8. Verwenden Sie Unterabfragen, um Daten abzurufen8.1 Einführung in Unterabfragen1. Unterabfrage: Eine Anweisung, die in anderen Anweisungen vorkommt, wird als Unterabfrage oder innere Abfrage bezeichnet. Eine Abfrage, die andere Select-Anweisungen einbettet, wird als äußere Abfrage oder Hauptabfrage bezeichnet. 2.(1) Klassifizierung der Unterabfragen: 2. (2) Nach der Anzahl der Zeilen und Spalten in der Ergebnismenge: 8.2 Beispiele für verschiedene Unterabfragen: 1. Unterabfragen nach where und mit:
Laufergebnisse: Beispiel 2: Wenn die Noten des Jungen Ruhuasiyu in Chinesisch, Mathematik und Englisch alle über 80 liegen, dann werden die Informationen aller Mitschüler angezeigt ( Zeilenunterabfrage):
Laufergebnisse: Beispiel 3: Verwenden Sie where, um die Namen weiblicher Klassenkameradinnen abzufragen ( Beispiel-Unterabfrage) (ziemlich einfaches Beispiel)
Laufergebnisse: 2. Wählen Sie die folgende Unterabfrage ( Skalare Unterabfrage)
Laufergebnisse: 3. Aus der dahinter stehenden Tabellenunterabfrage:
Laufergebnisse: 4. Tabellenunterabfrage nach Exist
Beispiel: Wir fragen die Namen von Schülern ab, deren Mathenoten 100 betragen
Laufergebnisse: Beachten Sie, dass Sie nicht schreiben können:
Es gibt keinen Alias. Bei dieser Schreibweise wird zuerst die Auswahl in exists ausgeführt. Solange in exists ein true vorhanden ist, werden die Namen aller Studenten abgefragt. Andernfalls werden die Namen aller Studenten nicht gefunden. Wenn Sie es also wie oben schreiben, werden, da es einen Studenten gibt, dessen Mathematik 100 ergibt, und die anderen nicht 100 sind, die Namen aller Studenten gefunden, wenn ein true vorhanden ist. Nach Verwendung des Alias wird jedoch jeder Student einmal beurteilt und für jede erfolgreiche Beurteilung wird ein Name ausgegeben. 8.3 Korrelierte Unterabfragen Korrelierte Unterabfrage: Eine Unterabfrage, die eine äußere Abfrage beinhaltet Wir fragen die durchschnittlichen Mathenoten der Jungen und Mädchen in der Schülertabelle ab:
Laufergebnisse: Wir können sehen, dass ich dem ersten ssex einen Alias und dem zweiten eine Referenz gegeben habe. Wenn wir ssex=ssex direkt verwenden, erhalten wir einen Fehler. Korrelierte Unterabfragen vermeiden Mehrdeutigkeiten. 9. VerbindungsabfrageWir fügen eine Informationstabelle basierend auf der Schülertabelle hinzu, um Schülerinformationen darzustellen (einschließlich Größe, Gewicht und Matrikelnummer). 9.1 VerbindungsabfrageEinstufung; Die Verbindungsabfrage wird in eine innere Verbindung und eine äußere Verbindungsquerverbindung unterteilt 1. Äquivalente und nicht äquivalente innere Verknüpfungen ( SQL92-Version)
Laufergebnisse: Innerer Join mit gleichem Wert, nicht gleichwertiger Join ( SQL99-Version)
Schreiben Sie das obige Beispiel der SQL92-Version mit der SQL99-Anweisung
Der Unterschied zur SQL2-Syntax besteht darin, dass die beiden Tabellen durch einen Join getrennt sind, und der Unterschied zu SQL92 besteht darin, dass die SQL92-Syntax die Join-Bedingung und andere Filterbedingungen in „where“ einfügt, während SQL99 die Join-Bedingung nach „on“ und andere Filterbedingungen nach „where“ einfügt. 2. Innerer Join-Selbst-Join ( sql92-Version):
Hier wird eine Tabelle als zwei Tabellen betrachtet, aber diese beiden Tabellen müssen Aliase erhalten, sonst kommt es zu Mehrdeutigkeiten. Sie müssen in diesem Format geschrieben werden 3. Innerer Join mehrerer Tabellen, gleicher Join:
4. Linker äußerer Join des äußeren Joins: Äußere Verknüpfungen werden verwendet, wenn eine Tabelle Datensätze enthält, die in der anderen Tabelle nicht vorhanden sind.
Äußere Verbindungseigenschaften (links außen, rechts außen): 1. Der äußere Join fragt alle Datensätze in der Haupttabelle ab
Wir führen eine neue Tabelle „abord“ ein (die Anzahl der Auslandsaufenthalte der in der Tabelle „Studenten“ aufgeführten Studenten) Beispiel:
Laufergebnisse: 5. Vollständige äußere Verbindungseigenschaften Der äußere Join fragt alle Datensätze in der Primärtabelle und der Sekundärtabelle ab 10.Gemeinsame AbfrageSchlüsselwortunion Anwendungsszenario: Wenn die von uns abgefragten Informationen aus mehreren Tabellen stammen und zwischen den mehreren Tabellen keine direkte Verbindung besteht, die abgefragten Feldinformationen jedoch konsistent sind (wenn beispielsweise beide Tabellen Name und Geschlecht abfragen, müssen die Abfragefelder ausgerichtet sein, damit sie in einer Tabelle kombiniert werden können. Wenn beispielsweise beide Tabellen Name und Geschlecht abfragen, muss die Reihenfolge des ersten Auswahlfelds mit der zweiten Auswahl übereinstimmen, d. h. Name zuerst und Geschlecht an zweiter Stelle oder Geschlecht zuerst und Name an zweiter Stelle). Zum Beispiel:
Laufergebnisse: Schauen wir uns den Effekt der Deduplizierung an: Wir fragen den Namen und das Geschlecht des Klassenkameraden, der 18 Jahre alt ist, zweimal ab
Laufergebnisse: Aber wenn wir Union alle verwenden
Laufergebnisse: 11. Unterabfragen11.1 Einzeilige Unterabfrage Einzeilige Unterabfrage, das Abfrageergebnis kann nur eine Datenzeile sein und die Unterabfrage kann keine Beispiel (Abfrage von Mitarbeiterinformationen, bei denen es sich weder um das höchste noch um das niedrigste Gehalt in emp handelt):
11.2 Mehrzeilige Unterabfragen Die Unterabfrage gibt mehrere Datenzeilen mit Beispiel: Fragen Sie die Tabelle „emp“ nach Mitarbeiterinformationen anderer Abteilungen ab, deren Gehalt höher ist als das Gehalt eines beliebigen Mitarbeiters in Abteilung Nummer 10.
11.3 Korrelierte UnterabfragenBei einzeiligen und mehrzeiligen Unterabfragen werden die inneren und äußeren Abfragen separat ausgeführt. Einige innere Abfragen werden mithilfe äußerer Abfragen ausgeführt, und die Ausführung äußerer Abfragen ist untrennbar mit der inneren Abfrage verbunden. Mit anderen Worten: Die inneren und äußeren Abfragen sind miteinander verknüpft. Solche Unterabfragen werden korrelierte Unterabfragen genannt. Beispiel:
Im obigen Beispiel muss die Unterabfrage die Berufsbezeichnung in der äußeren Abfragetabelle verwenden und die äußere Abfrage muss die Berufsinformationen aus der Unterabfrage verwenden. 12. Ergänzung12.1 Natürliche Abfrage Wenn eine natürliche Abfrage mehrere Tabellen abruft, verbindet sie automatisch die Tabellen mit den gleichen Spalten in den beiden Tabellen (natürliche Verbindungen erfordern die gleichen Spaltennamen). Zum Beispiel:
Unsere Mitarbeitertabelle und die Abteilung haben beide Empno-Spalten, daher stellt das System zu diesem Zeitpunkt automatisch eine Verbindung her, wenn es eine Abfrage durchführt. 12.2 Querverbindung Ein Cross Join ist ein Join, der keine Verbindungsbedingungen erfordert (die beiden Tabellen müssen keine Beziehung haben) und das Ergebnis der Ausführung ist ein kartesisches
Oben finden Sie den detaillierten Inhalt der MySQL-Datenbanksuchanweisung DQL für Anfänger. Weitere Informationen zur MySQL-Suchanweisung DQL finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Lösung für das Jitter-Problem beim CSS3-Transformationsübergang
Bei den tatsächlichen Projekten, an denen ich tei...
Heute bin ich etwas verwirrt über <a href="...
Wenn Sie es wären, wie würden Sie es erreichen, w...
Dieser Artikel beschreibt Ihnen, wie Sie MySQL 8....
1. Was ist die HTML-Auszeichnungssprache? HTML is...
Der Tomcat-Server ist ein kostenloser und quellof...
Wenn für MySQL 5.5 der Zeichensatz nicht festgele...
Inhaltsverzeichnis Frage 1: Wie werden Requisiten...
Inhaltsverzeichnis 1. Mittelsmann-Modell 2. Beisp...
Inhaltsverzeichnis Überblick Erfordern URL der An...
Wenn Sie Ihren Hostnamen ändern möchten, können S...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Einführung in das Teleporti...
Methode 1: Setzen Sie das schreibgeschützte Attrib...
Dieser Artikel basiert auf der CentOS 7.3-Systemu...