Was ist die SELECT-Abfrage in MySQL?
SELECT QUERY wird verwendet, um die Daten aus der MySQL-Datenbank abzurufen. Datenbanken speichern Daten zum späteren Abrufen. Der Zweck von MySQL Select besteht darin, aus den Datenbanktabellen eine oder mehrere Zeilen zurückzugeben, die einem bestimmten Kriterium entsprechen. Die Auswahlabfrage kann in einer Skriptsprache wie PHP, Ruby verwendet oder über die Eingabeaufforderung ausgeführt werden.
SQL SELECT-Anweisungssyntax
Es ist der am häufigsten verwendete SQL-Befehl und hat die 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
- SELECT ist das SQL-Schlüsselwort, mit dem die Datenbank weiß, dass Sie Daten abrufen möchten.
- [UNTERSCHEIDEND | ALL] sind optionale Schlüsselwörter, mit denen die von der SQL SELECT-Anweisung zurückgegebenen Ergebnisse verfeinert werden können. Wenn nichts angegeben ist, wird ALL als Standard angenommen.
- {* | [fieldExpression [AS newName]} Es muss mindestens ein Teil angegeben werden. "*" wählte alle Felder aus dem angegebenen Tabellennamen aus. fieldExpression führt einige Berechnungen für die angegebenen Felder durch, z. B. das Hinzufügen von Zahlen oder das Zusammenfügen von zwei Zeichenfolgenfeldern zu einem.
- FROM 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.
- Wenn die Bedingung optional ist, können Kriterien in der von der Abfrage zurückgegebenen Ergebnismenge angegeben werden.
- GROUP BY wird verwendet, um Datensätze mit denselben Feldwerten zusammenzustellen.
- Die HAVING- Bedingung wird verwendet, um Kriterien anzugeben, wenn mit dem Schlüsselwort GROUP BY gearbeitet wird.
- ORDER BY wird verwendet, um die Sortierreihenfolge der Ergebnismenge anzugeben.
* *
Das Sternsymbol wird verwendet, um alle Spalten in der Tabelle auszuwählen. Ein Beispiel für eine einfache SELECT-Anweisung sieht wie folgt aus.
SELECT * FROM `members`;
Die obige Anweisung wählt alle Felder aus der Mitgliedertabelle aus. Das Semikolon ist eine Anweisung terminate. Es ist nicht obligatorisch, wird aber als bewährte Methode angesehen, um Ihre Aussagen so zu beenden.
Praktische Beispiele
Klicken Sie hier, um die für praktische Beispiele verwendete myflix-Datenbank herunterzuladen .
Sie können lernen, die SQL-Datei in MySQL WorkBench zu importieren
Die Beispiele werden in den folgenden zwei Tabellen ausgeführt
Tabelle 1: Mitglieder Tisch
Mitgliedsnummer | ganze Namen | Geschlecht | Geburtsdatum | physikalische Adresse | Anschrift | contct_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Weiblich | 21-07-1980 | First Street Grundstück Nr. 4 | Private Tasche | 0759 253 542 | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
2 | Janet Smith Jones | Weiblich | 23-06-1980 | Melrose 123 | NULL | NULL | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
3 | Robert Phil | Männlich | 12-07-1989 | 3rd Street 34 | NULL | 12345 | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
4 | Gloria Williams | Weiblich | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Tabelle 2: Filme Tisch
movie_id | Titel | Direktor | Jahr_veröffentlicht | Kategorie ID |
---|---|---|---|---|
1 | Fluch der Karibik 4 | Rob Marshall | 2011 | 1 |
2 | Sarah Marschall vergessen | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Codename Schwarz | 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 | Honig Mooner | John Schultz | 2005 | 8 |
16 | 67% schuldig | NULL | 2012 | NULL |
Mitgliederliste abrufen
Nehmen wir an, wir möchten eine Liste aller registrierten Bibliotheksmitglieder aus unserer Datenbank abrufen. Dazu verwenden wir das unten gezeigte Skript.
SELECT * FROM `members`;
Das Ausführen des obigen Skripts in der MySQL-Workbench führt zu den folgenden Ergebnissen.
Mitgliedsnummer | ganze Namen | Geschlecht | Geburtsdatum | physikalische Adresse | Anschrift | contct_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Weiblich | 21-07-1980 | First Street Grundstück Nr. 4 | Private Tasche | 0759 253 542 | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
2 | Janet Smith Jones | Weiblich | 23-06-1980 | Melrose 123 | NULL | NULL | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
3 | Robert Phil | Männlich | 12-07-1989 | 3rd Street 34 | NULL | 12345 | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
4 | Gloria Williams | Weiblich | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Unsere obige Abfrage hat alle Zeilen und Spalten aus der Mitgliedertabelle zurückgegeben.
Nehmen wir an, wir sind nur daran interessiert, nur die Felder "vollständiger Name", "Geschlecht", "physische Adresse" und "E-Mail" abzurufen. Das folgende Skript würde uns dabei helfen.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Das Ausführen des obigen Skripts in der MySQL-Workbench führt zu den folgenden Ergebnissen.
ganze Namen | Geschlecht | physikalische Adresse | |
---|---|---|---|
Janet Jones | Weiblich | First Street Grundstück Nr. 4 | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
Janet Smith Jones | Weiblich | Melrose 123 | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
Robert Phil | Männlich | 3rd Street 34 | Diese E-Mail-Adresse ist vor Spambots geschützt! JavaScript muss aktiviert sein, damit sie angezeigt werden kann. |
Gloria Williams | Weiblich | 2nd Street 23 | NULL |
Filmliste abrufen
Denken Sie in unserer obigen Diskussion daran, dass wir Ausdrücke erwähnen, die in SELECT-Anweisungen verwendet wurden. Angenommen, wir möchten eine Liste der Filme aus unserer Datenbank abrufen. Wir möchten den Filmtitel und den Namen des Filmregisseurs in einem Feld haben. Der Name des Filmregisseurs sollte in Klammern stehen. Wir wollen auch das Jahr bekommen, in dem der Film veröffentlicht wurde. Das folgende Skript hilft uns dabei.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
HIER
- Die Concat () MySQL-Funktion wird verwendet, um die Spaltenwerte miteinander zu verbinden.
- Die Zeile "Concat (` title`, '(', `director`, ')') erhält den Titel, fügt eine öffnende Klammer gefolgt vom Namen des Regisseurs hinzu und fügt dann die schließende Klammer hinzu.
Zeichenfolgenteile werden in der Funktion Concat () durch Kommas getrennt.
Das Ausführen des obigen Skripts in der MySQL-Workbench erzeugt die folgende Ergebnismenge.
Concat ("Titel", "(", "Regisseur", ")") | Jahr_veröffentlicht |
---|---|
Fluch der Karibik 4 (Rob Marshall) | 2011 |
Sarah Marschall vergessen (Nicholas Stoller) | 2008 |
NULL | 2008 |
Codename Schwarz (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honigmond (John Schultz) | 2005 |
NULL | 2012 |
Alias-Feldnamen
Im obigen Beispiel wurde der Verkettungscode als Feldname für unsere Ergebnisse zurückgegeben. Angenommen, wir möchten einen aussagekräftigeren Feldnamen in unserer Ergebnismenge verwenden. Wir würden den Spaltenaliasnamen verwenden, um dies zu erreichen. Das Folgende ist die grundlegende Syntax für den Spaltenaliasnamen
SELECT `column_name|value|expression` [AS] `alias_name`;
HIER
- "SELECT` Spaltenname | Wert | Ausdruck `" ist die reguläre SELECT-Anweisung, die ein Spaltenname, ein Wert oder ein Ausdruck sein kann.
- "[AS]" ist das optionale Schlüsselwort, bevor der Aliasname, der den Ausdruck, den Wert oder den Feldnamen angibt, als zurückgegeben wird.
- "` alias_name` " ist der Aliasname, den wir in unserer Ergebnismenge als Feldnamen zurückgeben möchten.
Die obige Abfrage mit einem aussagekräftigeren Spaltennamen
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Wir erhalten das folgende Ergebnis
Concat | Jahr_veröffentlicht |
---|---|
Fluch der Karibik 4 (Rob Marshall) | 2011 |
Sarah Marschall vergessen (Nicholas Stoller) | 2008 |
NULL | 2008 |
Codename Schwarz (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honigmond (John Schultz) | 2005 |
NULL | 2012 |
Mitgliederliste mit dem Geburtsjahr
Angenommen, wir möchten eine Liste aller Mitglieder mit der Mitgliedsnummer, den vollständigen Namen und dem Geburtsjahr erhalten. Mit der Funktion LEFT string können wir das Geburtsjahr aus dem Feld für das Geburtsdatum extrahieren. Das unten gezeigte Skript hilft uns dabei.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
HIER
- "LEFT (` date_of_birth`, 4) " Die LEFT-String-Funktion akzeptiert das Geburtsdatum als Parameter und gibt nur 4 Zeichen von links zurück.
- "AS` year_of_birth` " ist der Spaltenaliasname , der in unseren Ergebnissen zurückgegeben wird. Beachten Sie, dass das Schlüsselwort AS optional ist. Sie können es weglassen und die Abfrage funktioniert weiterhin.
Wenn Sie die obige Abfrage in der MySQL-Workbench für die myflixdb ausführen, erhalten Sie die unten gezeigten Ergebnisse.
Mitgliedsnummer | ganze Namen | Geburtsjahr |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
SQL mit MySQL Workbench
Wir werden jetzt MySQL Workbench verwenden, um das Skript zu generieren, das alle Feldnamen aus unserer Kategorietabelle anzeigt.
1. Klicken Sie mit der rechten Maustaste auf die Kategorietabelle. Klicken Sie auf "Zeilen auswählen - 1000 begrenzen".
2. Die MySQL Workbench erstellt automatisch eine SQL-Abfrage und fügt sie in den Editor ein.
3. Die Abfrageergebnisse werden angezeigt
Beachten Sie, dass wir die SELECT-Anweisung nicht selbst geschrieben haben. MySQL Workbench hat es für uns generiert.
Warum den Befehl SELECT SQL verwenden, wenn wir MySQL Workbench haben?
Jetzt überlegen Sie vielleicht, warum Sie den SQL SELECT-Befehl zum Abfragen von Daten aus der Datenbank lernen sollten, wenn Sie einfach ein Tool wie die MySQL Workbench verwenden können, um dieselben Ergebnisse zu erzielen, ohne die SQL-Sprache zu kennen. Das ist natürlich möglich, aber wenn Sie lernen, wie Sie den Befehl SELECT verwenden, erhalten Sie mehr Flexibilität und Kontrolle über Ihre SQL SELECT-Anweisungen .
Die MySQL-Workbench fällt in die Kategorie der QBE-Tools " Abfrage nach Beispiel ". Es soll dazu beitragen, SQL-Anweisungen schneller zu generieren, um die Benutzerproduktivität zu steigern.
Durch Erlernen des SQL SELECT-Befehls können Sie komplexe Abfragen erstellen , die mit den Dienstprogrammen Query by Example wie MySQL Workbench nicht einfach generiert werden können.
Zur Verbesserung der Produktivität können Sie den Code mit MySQL Workbench erzeugen dann anpassen , es zu Ihren Anforderungen entsprechen . Dies kann nur passieren, wenn Sie verstehen, wie die SQL-Anweisungen funktionieren!
Zusammenfassung
- Das Schlüsselwort SQL SELECT wird zum Abfragen von Daten aus der Datenbank verwendet und ist der am häufigsten verwendete Befehl.
- Die einfachste Form hat die Syntax "SELECT * FROM tableName;"
- Ausdrücke können auch in der select-Anweisung verwendet werden. Beispiel "Menge + Preis AUS VERKAUF AUSWÄHLEN"
- Der SQL SELECT-Befehl kann auch andere optionale Parameter enthalten, z. B. WHERE, GROUP BY, HAVING, ORDER BY. Sie werden später besprochen.
- Die MySQL-Workbench kann dabei helfen, SQL-Anweisungen zu entwickeln, auszuführen und das Ausgabeergebnis im selben Fenster zu erstellen.