MySQL SELECT-Anweisung mit Beispielen
⚡ Intelligente Zusammenfassung
Das MySQL Die SELECT-Anweisung ruft Zeilen aus einer oder mehreren Tabellen ab. Jedes der folgenden Beispiele wird anhand der myflix-Beispieldatenbank ausgeführt, wobei von der einfachen Sternabfrage über Ausdrücke und Spaltenaliase bis hin zu Zeichenkettenfunktionen vorgegangen wird.

Was ist eine SELECT-Abfrage? MySQL?
SELECT-Abfrage wird verwendet, um Daten aus dem MySQL Datenbank. Datenbanken speichern Daten für den späteren Abruf. Der Zweck von MySQL Die SELECT-Anweisung gibt eine oder mehrere Zeilen aus den Datenbanktabellen zurück, die bestimmten Kriterien entsprechen. Eine SELECT-Abfrage kann in einer Skriptsprache wie PHP oder Ruby verwendet oder über die Kommandozeile ausgeführt werden.
Da SELECT der Befehl ist, den Sie am häufigsten ausführen werden, lohnt es sich, seine Syntax zu lernen, bevor Sie die Beispieldaten bearbeiten.
SQL SELECT-Anweisungssyntax
SELECT ist der am häufigsten verwendete SQL-Befehl und hat folgende allgemeine Syntax:
SELECT [DISTINCT|ALL] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition] [GROUP BY fieldName(s)] [HAVING condition] [ORDER BY fieldName(s)];
HIER KLICKEN
- SELECT ist das SQL-Schlüsselwort, das der Datenbank mitteilt, dass Sie Daten abrufen möchten.
- [DEUTLICH | ALLE] sind optionale Schlüsselwörter, die die von der SQL-SELECT-Anweisung zurückgegebenen Ergebnisse genauer steuern. Wenn keines angegeben wird, wird standardmäßig ALL verwendet.
- {*| [fieldExpression [AS newName]} Mindestens ein Teil muss angegeben werden. „*“ wählt alle Felder der angegebenen Tabelle aus; fieldExpression führt Berechnungen mit den angegebenen Feldern durch, z. B. das Addieren von Zahlen oder das Zusammenfügen zweier Zeichenkettenfelder zu einem einzigen.
- AB Das Feld „tableName“ ist obligatorisch und muss mindestens eine Tabelle enthalten. Mehrere Tabellen müssen durch Kommas getrennt oder mit dem Schlüsselwort JOIN verknüpft werden.
- WO Die Bedingung ist optional. Sie legt Kriterien für das von der Abfrage zurückgegebene Ergebnis fest.
- GRUPPIERE NACH wird verwendet, um Datensätze zusammenzustellen, die die gleichen Feldwerte haben.
- HABEN Die Bedingung wird verwendet, um Kriterien bei der Arbeit mit dem Schlüsselwort GROUP BY anzugeben.
- SORTIEREN NACH wird verwendet, um die Sortierreihenfolge der Ergebnismenge anzugeben.
*
Das Sternsymbol wählt alle Spalten einer Tabelle aus. Eine einfache SELECT-Anweisung sieht beispielsweise so aus:
SELECT * FROM `members`;
Die obige Anweisung wählt alle Felder aus der Tabelle „members“ aus. Das Semikolon beendet die Anweisung. Es ist zwar nicht zwingend erforderlich, gilt aber als bewährte Vorgehensweise.
SELECT DISTINCT und LIMIT in MySQL
Zwei optionale Schlüsselwörter in der Syntax verdienen einen genaueren Blick, da Anfänger ihnen bereits begegnen, wenn eine Tabelle größer wird.
DISTINCT Entfernt doppelte Zeilen aus dem Ergebnissatz. Die Tabelle „movies“ enthält mehrere Filme, die 2007 erschienen sind, daher wiederholt eine einfache Abfrage dieses Jahr. DISTINCT gibt jeden Wert genau einmal zurück.
SELECT DISTINCT `year_released` FROM `movies`;
LIMIT begrenzt die Anzahl der zurückgegebenen Zeilen und schützt so den Client vor einer Abfrage, die andernfalls Millionen von Datensätzen abrufen würde.
SELECT * FROM `movies` LIMIT 5;
| Stichwort (Keyword) | Was sie tut, | Wann man es benutzt |
|---|---|---|
| ALLE (Standard) | Gibt alle übereinstimmenden Zeilen zurück, einschließlich Duplikaten. | Zählen oder Auflisten von Rohdaten |
| DISTINCT | Doppelte Zeilen werden zu einer einzigen zusammengefasst | Erstellen einer Liste eindeutiger Werte |
| LIMIT | Gibt nur die ersten N Zeilen zurück. | Vorschau der Daten oder Seitenergebnisse |
Nachdem die Syntax festgelegt wurde, erweckt die Beispieldatenbank diese Klauseln zum Leben.
SELECT-Anweisung – Praktische Beispiele
Zum Herunterladen klicken Die Myflix-Datenbank, die für die praktischen Beispiele verwendet wurde.
Sie können lernen, wie Sie die .sql-Datei importieren in MySQL Werkbank.
Die Beispiele werden an den folgenden beiden Tabellen durchgeführt.
Tabelle 1: Mitglieder Tabelle
| Mitgliedsnummer | ganze Namen | Geschlecht | Geburtsdatum | physikalische Adresse | Anschrift | Kontaktnummer | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Weiblich | 21-07-1980 | Erstes Straßengrundstück Nr. 4 | Private Tasche | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Weiblich | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Männlich | 12-07-1989 | 3. Straße 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Weiblich | 14-02-1984 | 2. Straße 23 | NULL | NULL | NULL |
Tabelle 2: Filme Tabelle
| movie_id | Titel | Regisseur | Jahr_veröffentlicht | Kategorie ID |
|---|---|---|---|---|
| 1 | Fluch der Karibik 4 | Rob Marshall | 2011 | 1 |
| 2 | Sarah Marshal vergessen | Nicholas Stoller | 2008 | 2 |
| 3 | X-Men | NULL | 2008 | NULL |
| 4 | Code Name Black | Edgar Jimz | 2010 | NULL |
| 5 | Papas kleine Mädchen | NULL | 2007 | 8 |
| 6 | Engel und Dämonen | NULL | 2007 | 6 |
| 7 | Davinci Code | NULL | 2007 | 6 |
| 9 | Honey moonERS | Johann Schulz | 2005 | 8 |
| 16 | 67 % schuldig | NULL | 2012 | NULL |
Mitgliederliste abrufen
Angenommen, wir möchten eine Liste aller registrierten Bibliotheksmitglieder aus unserer Datenbank erhalten. Dazu würden wir das unten gezeigte Skript verwenden.
SELECT * FROM `members`;
Das Skript wird ausgeführt in MySQL Workbench liefert die folgenden Ergebnisse.
| Mitgliedsnummer | ganze Namen | Geschlecht | Geburtsdatum | physikalische Adresse | Anschrift | Kontaktnummer | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Weiblich | 21-07-1980 | Erstes Straßengrundstück Nr. 4 | Private Tasche | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Weiblich | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Männlich | 12-07-1989 | 3. Straße 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Weiblich | 14-02-1984 | 2. Straße 23 | NULL | NULL | NULL |
Die Abfrage lieferte alle Zeilen und Spalten aus der Tabelle „Mitglieder“.
Auswahl bestimmter Spalten
Angenommen, wir interessieren uns nur für die Felder „full_names“, „gender“, „physical_address“ und „email“. Das folgende Skript erreicht dies.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Das Skript wird ausgeführt in MySQL Workbench liefert die folgenden Ergebnisse.
| ganze Namen | Geschlecht | physikalische Adresse | |
|---|---|---|---|
| Janet Jones | Weiblich | Erstes Straßengrundstück Nr. 4 | janetjones@yagoo.cm |
| Janet Smith Jones | Weiblich | Melrose 123 | jj@fstreet.com |
| Robert Phil | Männlich | 3. Straße 34 | rm@tstreet.com |
| Gloria Williams | Weiblich | 2. Straße 23 | NULL |
Filmliste mit Ausdrücken abrufen
Ausdrücke können auch in SELECT-Anweisungen verwendet werden. Angenommen, wir möchten eine Liste von Filmen mit dem Titel und dem Namen des Regisseurs in einem Feld, dem Regisseur in Klammern und dem Erscheinungsjahr des Films. Das folgende Skript erledigt das.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
HIER KLICKEN
- Die Concat()-Funktion MySQL Funktion verknüpft Spaltenwerte.
- Die Zeile „Concat(`title`, ' (', `director`, ')')“ holt sich den Titel, fügt eine öffnende Klammer gefolgt vom Namen des Regisseurs hinzu und anschließend die schließende Klammer.
- Innerhalb der Concat()-Funktion werden die einzelnen Zeichenkettenabschnitte durch Kommas getrennt.
Das Skript wird ausgeführt in MySQL Workbench erzeugt das folgende Ergebnis-Set.
| Concat(`title`, ' (', `director`, ')') | Jahr_veröffentlicht |
|---|---|
| Fluch der Karibik 4 (Rob Marshall) | 2011 |
| Sarah Marshal (Nicholas Stoller) vergessen | 2008 |
| NULL | 2008 |
| Code Name Black (Edgar Jimz) | 2010 |
| NULL | 2007 |
| NULL | 2007 |
| NULL | 2007 |
| Honey mooners (John Schultz) | 2005 |
| NULL | 2012 |
Hinweis: Die Funktion Concat() gibt NULL zurück, wenn mindestens ein Argument NULL ist. Deshalb wird oben bei Filmen ohne Regisseur NULL angezeigt.
Alias-Feldnamen
Das obige Beispiel gab den Verkettungscode als Feldnamen zurück. Um einen aussagekräftigeren Feldnamen im Ergebnissatz zu verwenden, wenden Sie einen Spaltenalias an. Die grundlegende Syntax folgt.
SELECT `column_name|value|expression` [AS] `alias_name`;
HIER KLICKEN
- „SELECT `Spaltenname|Wert|Ausdruck`“ ist die reguläre SELECT-Anweisung, die ein Spaltenname, ein Wert oder ein Ausdruck sein kann.
- "[ALS]" ist das optionale Schlüsselwort vor dem Aliasnamen.
- „`Aliasname`“ ist der Alias, der im Resultset als Feldname zurückgegeben wird.
Dieselbe Abfrage mit einem aussagekräftigeren Spaltennamen:
SELECT Concat(`title`, ' (', `director`, ')') AS `Concat`, `year_released` FROM `movies`;
Wir erhalten folgendes Ergebnis.
| Konkat | Jahr_veröffentlicht |
|---|---|
| Fluch der Karibik 4 (Rob Marshall) | 2011 |
| Sarah Marshal (Nicholas Stoller) vergessen | 2008 |
| NULL | 2008 |
| Code Name Black (Edgar Jimz) | 2010 |
| NULL | 2007 |
| NULL | 2007 |
| NULL | 2007 |
| Honey mooners (John Schultz) | 2005 |
| NULL | 2012 |
Mitgliederliste mit Geburtsjahr anzeigen
Angenommen, wir möchten eine Liste aller Mitglieder mit Mitgliedsnummer, vollständigem Namen und Geburtsjahr. Wir können die LEFT-Stringfunktion verwenden, um …tracDas Geburtsjahr wird aus dem Feld „Geburtsdatum“ entnommen.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
HIER KLICKEN
- „LINKS(`Geburtsdatum`,4)“ die LEFT-String-Funktion Akzeptiert das Geburtsdatum als Parameter und gibt nur die ersten vier Zeichen zurück.
- „AS `year_of_birth`“ ist das Spaltenaliasname Das Ergebnis war in unseren Ergebnissen enthalten. Das Schlüsselwort AS ist optionalSie können es weglassen, die Abfrage funktioniert trotzdem.
Die Abfrage wird ausgeführt in MySQL Die Workbench-Analyse von myflixdb liefert die unten dargestellten Ergebnisse.
| Mitgliedsnummer | ganze Namen | Geburtsjahr |
|---|---|---|
| 1 | Janet Jones | 1980 |
| 2 | Janet Smith Jones | 1980 |
| 3 | Robert Phil | 1989 |
| 4 | Gloria Williams | 1984 |
Manuell geschriebene Abfragen sind nur ein Weg zu einem Ergebnissatz. Workbench kann die Abfrage auch für Sie erstellen.
SQL-Nutzung MySQL Werkbank
Wir werden es jetzt verwenden MySQL Workbench, um das Skript zu generieren, das alle Feldnamen aus unserer Kategorientabelle anzeigt.
1. Klicken Sie mit der rechten Maustaste auf die Tabelle „Kategorien“. Klicken Sie auf „Zeilen auswählen – Limit 1000“.
2. MySQL Workbench erstellt automatisch eine SQL-Abfrage und fügt sie in den Editor ein.
3. Die Suchergebnisse werden im Raster unterhalb des Editors angezeigt.
Wie der Screenshot zeigt, haben wir die SELECT-Anweisung nicht selbst geschrieben. MySQL Workbench hat es für uns generiert.
Warum den SELECT SQL-Befehl verwenden, wenn wir haben MySQL Werkbank?
Sie fragen sich vielleicht, warum Sie den SQL-SELECT-Befehl lernen sollten, wenn es doch ein Tool wie … gibt. MySQL Workbench liefert die gleichen Ergebnisse auch ohne SQL-Kenntnisse. Diese Abkürzung ist zwar möglich, aber den SELECT-Befehl lernen gibt dir mehr Flexibilität und Kontrolle über deine SQL SELECT-Anweisungen.
MySQL Workbench fällt in die Kategorie „Abfrage nach Beispiel„(QBE)-Tools. Sie dienen dazu, SQL-Anweisungen schneller zu generieren und die Produktivität der Benutzer zu steigern.“
Das Erlernen des SQL-SELECT-Befehls ermöglicht Ihnen Folgendes: komplexe Abfragen die nicht ohne Weiteres durch Query-by-Example-Dienstprogramme wie beispielsweise generiert werden können MySQL Werkbank.
Um die Produktivität zu steigern, können Sie den Code generieren in MySQL Werkbank und dann anpassen es erfüllen Sie Ihre AnforderungenDas ist nur möglich, wenn man versteht, wie SQL-Anweisungen funktionieren.



