MySQL SELECT-Anweisung mit Beispielen

Inhaltsverzeichnis:

Anonim

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 Email
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 Email
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 Email
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.