Dieser Artikel veranschaulicht anhand eines Beispiels die vollständige Verwendung der Select-Anweisung in den MySQL-Lernhinweisen. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: In diesem Artikel:- Vollständige Syntax
- Deduplizierungsoptionen
- Feld-Aliasnamen
- Datenquelle
- Wo
- Gruppieren nach
- haben
- Bestellen bis
- Limit
Veröffentlichungsdatum: 2018-04-11
Vollständige Syntax: Geben Sie zuerst die vollständige Grammatik an und erklären Sie sie dann einzeln. Grundlegende Syntax: Feldliste aus Datenquelle auswählen; Vollständige Syntax: Wählen Sie die Feldliste der Deduplizierungsoption [als Feldalias] aus der Datenquelle [Where-Klausel] [Group By-Klausel] [Having-Klausel] [Order By-Klausel] [Limit-Klausel];
Deduplizierungsoptionen:- Mit der Deduplizierungsoption können Sie festlegen, ob identische Datensätze (alle Felddaten sind gleich) in den Ergebnissen dedupliziert werden sollen:
- alle: keine Duplikatsentfernung
- distinct: Duplikate entfernen
- Syntax: Wählen Sie die Feldliste der Deduplizierungsoptionen aus dem Tabellennamen aus.
Beispiel: Vor der Deduplizierung: , nach der Deduplizierung 
Tabelle erstellen Student (Name varchar (15), Geschlecht varchar (15));
in Student einfügen (Name, Geschlecht) Werte („lilei“, „männlich“);
in Student einfügen (Name, Geschlecht) Werte („lilei“, „männlich“);
wähle * vom Studenten;
Wählen Sie ein anderes * als den Studenten aus. Auffüllen:- Hinweis: Die Deduplizierung wird für die aus der Abfrage abgerufenen Datensätze durchgeführt, nicht für die in der Tabelle gespeicherten Datensätze. Wenn nur bestimmte Felder abgefragt werden, zielt die Deduplizierung auf diese Felder ab.
Feldaliasnamen:- Ein Feldalias ist ein Name, der einem Feld in den Abfrageergebnissen zugewiesen wird.
- Der Feldalias wird nur in den aktuellen Abfrageergebnissen wirksam.
- Feldaliase werden im Allgemeinen verwendet, um die Bedeutung des Felds zu verstehen (wenn wir beispielsweise den Namen als Name definieren, hoffen wir, dass das an den Benutzer zurückgegebene Ergebnis als Name angezeigt wird), abgekürzter Feldname
- Syntax: Feld als Feldalias aus Tabellennamen auswählen;
Beispiel: Vor dem Gebrauch: , nach Gebrauch 
Tabelle erstellen Student (Name varchar (15), Geschlecht varchar (15));
in Student einfügen (Name, Geschlecht) Werte („lilei“, „männlich“);
in Student einfügen (Name, Geschlecht) Werte („lilei“, „männlich“);
wähle * vom Studenten;
Wählen Sie als Namen „姓名“ und als Geschlecht „性别“ des Schülers aus.
Datenquelle:- Tatsächlich muss die Quelle der Abfrage kein „Tabellenname“ sein, es muss nur eine zweidimensionale Tabelle sein. Dann kann die Datenquelle ein ausgewähltes Ergebnis sein.
- Die Datenquelle kann eine Einzeltabellen-Datenquelle, eine Mehrtabellen-Datenquelle oder eine Abfrageanweisung sein.
- Einzelne Tabelle: Feldliste aus Tabellenname auswählen;
- Mehrere Tabellen: Wählen Sie die Feldliste aus Tabellenname 1, Tabellenname 2, …; [Bei der Abfrage mehrerer Tabellen werden x Datensätze in jeder Tabelle mit y Datensätzen in einer anderen Tabelle kombiniert, um ein Ergebnis zu bilden, und die Anzahl der Datensätze im Ergebnis beträgt x*y] [Es kann als kartesisches Produkt bezeichnet werden]
- Abfrageanweisung: select field list fromr (select-Anweisung) as table alias; [Hiermit wird ein Abfrageergebnis als zweidimensionale Tabelle als Ziel einer Abfrage verwendet. Das Abfrageergebnis muss als Tabellenalias definiert werden, um als Datenquelle verwendet zu werden]
- Beispiel: Wähle den Namen aus (wähle * aus Student) als d;
Where-Klausel:- Die Where-Klausel wird verwendet, um die Ergebnisse zu filtern, die die Bedingungen erfüllen.
Wobei mehrere Syntaxen gelten: - Basierend auf dem Wert:
- =: wobei Feld=Wert; sucht die Datensätze, bei denen das entsprechende Feld dem entsprechenden Wert entspricht. (Ebenso ist < kleiner als der entsprechende Wert, <= ist kleiner oder gleich dem entsprechenden Wert, > ist größer als der entsprechende Wert, >= ist größer oder gleich dem entsprechenden Wert und != ist ungleich), zum Beispiel: where name = 'lilei'
- like:where-Feld wie Wert; funktioniert ähnlich wie =, kann aber Fuzzy-Matching verwenden, um Ergebnisse zu finden. Beispiel: wobei der Name wie „li%“ lautet
- Basierend auf dem Wertebereich:
- in: wobei Feld im Bereich liegt; Datensätze suchen, deren Werte des entsprechenden Felds im angegebenen Bereich liegen. Zum Beispiel: wobei das Alter in (18,19,20)
- nicht in: wenn Feld nicht im Bereich liegt; Datensätze suchen, bei denen der Wert des entsprechenden Felds nicht im angegebenen Bereich liegt. Beispiel: wobei das Alter nicht in (18,19,20) liegt
- zwischen x und y: wobei Feld zwischen x und y; findet Datensätze, deren Werte der entsprechenden Felder im abgeschlossenen Intervall [x,y] liegen. Beispiel: wenn das Alter zwischen 18 und 20 Jahren liegt.
- Bedingte Zusammensetzung:
- oder: wobei Bedingung 1 oder Bedingung 2 …; Suchen Sie die Datensätze, die Bedingung 1 oder Bedingung 2 erfüllen.
- und: wobei Bedingung 1 und Bedingung 2 …; Suchen Sie die Datensätze, die Bedingung 1 und Bedingung 2 erfüllen.
- nicht: wobei Bedingung 1 nicht gilt; alle Datensätze suchen, die die Bedingung nicht erfüllen.
- Die Funktion von && ist dieselbe wie und; die Funktion von || ist ähnlich wie oder, und die Funktion von ! ist ähnlich wie nicht.
Auffüllen:- wo erfolgt die Filterung beim Abrufen von Daten von der Festplatte? Daher können einige Dinge, die nur im Speicher sind, dort nicht verwendet werden. (Feldaliase sind ursprünglich keine „Daten auf der Festplatte“ (sie werden bei der Ausführung im Speicher definiert), sodass „where“ nicht verwendet werden kann und im Allgemeinen auf eine Filterung angewiesen ist).
Wählen Sie den Namen als n, Geschlecht des Schülers, wobei Name = „lilei“;
– wähle Namen als n, Geschlecht von Schüler, bei dem n = „lilei“ ist; – Fehler bei der Auswahl des Namens als n, Geschlecht von Schüler mit n = „lilei“;
group by-Klausel:- Mit „group by“ können Sie die Abfrageergebnisse nach Feldern gruppieren.
- Syntax: Wählen Sie die Feldliste aus der Tabellennamengruppe nach Feld aus.
- [Es können mehrere Felder vorhanden sein, was eigentlich eine sekundäre Gruppierung darstellt]

- Beispiel: Wählen Sie Name, Geschlecht, Anzahl (Name) als „Gruppenmitglied“ aus „Student“ als d-Gruppe nach Namen;
Wählen Sie Name, Geschlecht, Anzahl (Name) als „Gruppenmitglied“ aus Student als d, Gruppierung nach Name, Geschlecht; Auffüllen:- Tatsächlich besteht die Hauptfunktion von „group by“ in der Statistik (es gibt viele Szenarien, wie z. B. das Zählen der Gesamtpunktzahl einer Person, der Anzahl weiblicher Schüler usw.), sodass es normalerweise mit einigen statistischen Funktionen verwendet wird:
- count(x): zählt die Anzahl der Datensätze in jeder Gruppe. Wenn x * ist, stellt es die Anzahl der Datensätze dar. Wenn x ein Feldname ist, stellt es die Anzahl der Felddaten dar (außer NULL).
- max(x): Statistischer Maximalwert, x ist der Feldname
- min(x): minimaler statistischer Wert, x ist der Feldname
- avg(x): statistischer Durchschnitt, x ist der Feldname
- sum(x): statistische Summe, x ist der Feldname
- Auf das Feld „Gruppieren nach“ kann „asc“ oder „desc“ folgen, um anzugeben, ob die Daten nach der Gruppierung entsprechend dem Feld sortiert werden sollen.
Having-Klausel:- Die Funktion von „have“ ähnelt der von „where“, aber die bedingte Beurteilung von „have“ erfolgt, wenn sich die Daten im Speicher befinden. Daher können Daten verwendet werden, die nur im Speicher vorkommen, wie z. B. „Gruppierung“, „Feldalias“ usw.
- Syntax: Wähle eine Feldliste aus dem Tabellennamen mit der Bedingung aus; [Operatoren usw. können sich auf „where“ beziehen, und es werden nur einige Filterbedingungen im „Speicher“ hinzugefügt]
- Beispiel: Wählen Sie Namen als n, Geschlecht von Schüler mit n = „lilei“;
select name,gender,count(*) as "组員" from student as d group by name,gender having count(*) >2 ;-- Nur Gruppen mit >2 Datensätzen werden hier angezeigt
order by-Klausel:- Mit order by können Sie die Abfrageergebnisse nach einem bestimmten Feld sortieren.
- Syntax: Wählen Sie die Feldliste aus dem Tabellennamen aus, sortiert nach Feld [asc|desc].
- Es können mehrere Felder vorhanden sein. Von links nach rechts basiert die letztere Sortierung auf der ersteren (Beispiel: Zuerst nach Namen sortieren, dann nach Geschlecht sortieren. Die letztere Sortierung nach Geschlecht gilt für die Daten mit demselben Namen wie die vorherige Namenssortierung).
- asc bedeutet, dass die Sortierung aufsteigend ist
- desc steht für abnehmende
- Sie können auch die Sortiermethode für ein bestimmtes Feld angeben, z. B. das erste Feld in aufsteigender Reihenfolge und das zweite Feld in absteigender Reihenfolge. Fügen Sie einfach nach jedem Feld „asc“ oder „desc“ hinzu (die Standardeinstellung ist zwar inkrementell, es ist jedoch immer noch übersichtlicher, es hinzuzufügen).
- Beispiel: select * aus der nach Namen sortierten Studentenliste;
Wählen Sie * aus der Reihenfolge der Studenten nach Name, Geschlecht aus;
Wählen Sie * aus der Reihenfolge der Studenten nach Name aufsteigend, Geschlecht absteigend;
Begrenzungsklausel:- Mit „Limit“ lässt sich die Anzahl der Ergebnisse begrenzen. Bei Verwendung mit where\having usw. können Sie die Übereinstimmungsergebnisse einschränken. „Limit“ kann immer dann verwendet werden, wenn es um Quantität geht (hiermit wird nur die Rolle von „Limit“ hervorgehoben, verstehen Sie es nicht über)
- Syntax: Wähle die Feldliste aus dem Tabellennamen „Limit [Offset,] Anzahl“;
- count ist die Zahl
- Der Offset ist die Startposition. Der Offset beginnt bei 0 und kann als Indexnummer jedes Datensatzes bezeichnet werden.
-- Beispiel: Auswahl * vom Studentenlimit 1;
Wählen Sie * aus dem Studentenlimit 3,1;
Wählen Sie * vom Studenten, wobei Name = "lilei" ist, Limit 1;
Wählen Sie * vom Studenten, wobei Name = "lilei" ist, Limit 3,1; Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“, „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“ und „Zusammenfassung der allgemeinen MySQL-Funktionen“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:- Eine kurze Diskussion zur MySQL-Select-Optimierungslösung
- MySQL-Beispiel-Tutorial: Ergebnisse auswählen, um ein Update durchzuführen
- Beheben Sie das Problem, dass die Lese-/Schreibtrennung von MySQL dazu führt, dass Daten nach dem Einfügen nicht ausgewählt werden
- Wie die MySQL Select-Anweisung ausgeführt wird
- Implementierung von MySQL Select in der Unterabfrageoptimierung
- Codebeispiele für MySQL-Batchoperationsanweisungen „Select“, „Insert“ und „Update“
- Ein kurzes Verständnis der MySQL SELECT-Ausführungsreihenfolge
- Erläuterung der MySQL-Transaktionsauswahl für die Aktualisierung und Datenkonsistenzverarbeitung
- Der Unterschied zwischen Update und Select in MySQL für einzelne und mehrere Tabellen sowie Ansichten und temporäre Tabellen
- Detaillierte Erläuterung der Verwendung des MySQL-Auswahl-Cache-Mechanismus
- Zusammenfassung der Select-Verwendung in der MySql-Datenbank
- So wird eine Select-Anweisung in MySQL ausgeführt
|