Zurück zum Blog

Eine Übersicht über Abfragen in MySQL

Eine Übersicht über Abfragen in MySQL

Nachhaltigkeit im Unternehmen ist ohne ordnungsgemäßes Datenmanagement schwierig. Der Aufbau eines klar definierten Systems ist für die Verwaltung interner und externer Abläufe unerlässlich. Ein detaillierter Einblick in die Geschäftsdaten hilft, den gesamten Arbeitsablauf zu verstehen und die Leistung zu messen. Darüber hinaus spart die Nutzung von Datenbanken Zeit und ermöglicht den mühelosen Zugriff auf Informationen.

Was ist eine Datenbank?

Eine Datenbank ist ein organisiertes System, das zur sicheren Speicherung von Informationen dient. Es bietet Kategorisierung und ermöglicht die Erstellung von Tabellen, um ähnliche Arten von Elementen in einer Gruppe zu sortieren. Tabellen bieten Optionen zur Auflistung von Informationen in mehreren Zeilen und Spalten. Dadurch verbessern sich die Qualität und Konsistenz der Daten. Neben Speicher- und einfachen Zugriffsmöglichkeiten spielen Datenbanken eine wichtige Rolle beim Schutz der Privatsphäre und der Sicherung von Systemen. Ob ad-hoc oder als Teil eines in einer Anwendung codierten Prozesses, das Abrufen von Daten ist einer der kritischsten Aspekte des Datenbankmanagements.

Eine Abfrage in relationalen DMS ist jeder Befehl, der zum Abrufen von Daten aus einer Tabelle verwendet wird. SELECT-Anweisungen werden fast immer in Structured Query Language-Abfragen (SQL) verwendet. Es gibt verschiedene Methoden, um Informationen aus einer Datenbank abzurufen. Im Allgemeinen bevorzugen Entwickler die Befehlszeilenoption, da sie schnell und effektiv ist. Sie ermöglicht das nahtlose Senden von Abfragen.

In dieser Anleitung werden wir Sie in MySQL einführen und besprechen, wie man mit Abfragen in MySQL arbeitet. Starten wir!

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie Folgendes:

Schritt 1 — Erstellen und Einrichten einer Datenbank

Bevor wir beginnen und unsere erste SQL-Abfrage schreiben, müssen wir eine Datenbank erstellen und Tabellen hinzufügen. Danach werden wir die Tabellen mit Beispieldaten füllen. Die Arbeit mit Datenbanken wird Ihnen helfen, die grundlegende Einrichtung zu verstehen und Vertrauen im Umgang mit Abfragen zu gewinnen.

Praktische Erfahrung ist der effektivste Weg, um Konzepte aufzubauen und die Bedeutung von Datenbanken zu verstehen. In dieser Anleitung führen wir Sie durch die Verwendung von Datenbanken und deren Bedeutung zur Lösung realer Probleme. Schauen wir uns ein Szenario an, um zu verstehen, wie Datenbanken helfen können, Datensätze strukturiert zu organisieren.

Szenario: Wir werden eine Datenbank erstellen, in der eine Gruppe von College-Studenten in den Urlaub fährt, um ihre Geburtstage zu feiern. Bevor sie in den Urlaub fahren, planen sie, an einem freundschaftlichen Schwimmwettkampf teilzunehmen. Außerdem plant jeder Freund in der Gruppe eine To-Do-Liste mit Aktivitäten, um ihre Reise aufregend und angenehm zu gestalten.

Öffnen Sie zuerst MySQL als Root-Benutzer:

Erstellen Sie dann eine Datenbank, indem Sie den folgenden Befehl ausführen:

Als Nächstes verwenden wir unsere Datenbank mit dem folgenden Befehl:

Danach werden wir Tabellen in unserer Datenbank erstellen. Benennen Sie die erste Tabelle als celebration. Unsere Tabelle wird Spalten für die Namen unserer Freunde haben (name), die Turniere, die sie gewonnen haben (wins) und auch eine Spalte für ihre beste Zeit (time):

Wir werden dann unsere Tabelle mit Daten füllen:

Erstellen Sie dann eine weitere Tabelle in unserer Datenbank, um Informationen über ihre liebsten Geburtstagsaktivitäten zu speichern. Wir werden eine Tabelle namens vacation erstellen und ihr die folgenden Spalten zuweisen:

Liste

Detail

name:

Speichert den Namen jedes Freundes.

birthdate:

Verfolgt das Geburtsdatum jeder Person.

activity:

Hält die Lieblingsaktivität fest.

Destination:

Speichert die Information über das bevorzugte Reiseziel jeder Person.

meal:

Verfolgt das Lieblingsgericht einer Person.

Befüllen Sie die Tabelle mit Daten:

Sie haben die Einrichtung Ihrer Datenbank nun abgeschlossen.

Schritt 2 — Erste Schritte mit SELECT-Anweisungen

Abfragen in SQL beginnen normalerweise mit SELECT. Dies wird in Abfragen verwendet, um anzugeben, welche Spalten in einer Tabelle mit den Ergebnissen zurückgegeben werden sollen. Eine Abfrage muss außerdem immer enthaltenFROM, was verwendet wird, um die Tabelle anzugeben, die von der Anweisung abgefragt wird.

Abfragen folgen der unten stehenden Syntax:

Wir werden die Abfragesyntax verwenden, um die Spalte meal aus der Tabelle vacation zurückzugeben:

Unsere Ausgabe sieht wie folgt aus:

Sie können auch mehrere Spalten auswählen, indem Sie sie durch ein Komma trennen:

Ausgabe:

Sie können auch ein asterisk (*) verwenden, wenn Sie alle Spalten in der Tabelle darstellen möchten:

Ausgabe:

Wenn Sie Datensätze filtern möchten, die eine bestimmte Bedingung erfüllen, verwenden Sie WHERE. Die Zeilen, die die angegebene Bedingung nicht erfüllen, werden aus den Ergebnissen entfernt. Die WHERE-Klausel verwendet die folgende Syntax:

Es ist ein Vergleichsoperator, der definiert, wie die angegebene Spalte mit dem Wert verglichen werden soll. Zu den gängigen SQL-Vergleichsoperatoren gehören:

Operator

Verwendung

=

Gleichheit

!=

Ungleichheit

<

Kleiner als

>

Größer als

<=

Kleiner oder gleich

>=

Größer oder gleich

BETWEEN

Prüft, ob der Wert innerhalb des angegebenen Bereichs liegt.

IN

Prüft, ob der Wert einer Zeile in einer Menge bestimmter Werte enthalten ist.

EXISTS

Prüft, ob eine Zeile existiert

LIKE

Prüft, ob ein Wert mit der angegebenen Zeichenkette übereinstimmt

IS NULL

Prüft auf NULL-Werte

IS NOT NULL

Prüft auf alle Werte außer NULL

Wenn Sie Aishas bevorzugtes Reiseziel finden möchten, können Sie die folgende Abfrage verwenden:

Die Abfrage gibt dann Folgendes zurück:

SQL unterstützt die Verwendung von Platzhaltern, die besonders nützlich in WHERE-Klauseln sind. Prozentzeichen ( %) stehen für null oder mehr unbekannte Zeichen, während Unterstriche ( _) für ein einzelnes unbekanntes Zeichen stehen. Diese sind hilfreich, wenn Sie einen bestimmten Eintrag in einer Tabelle finden möchten, sich aber über den Eintrag nicht sicher sind.

Wenn Sie beispielsweise das Lieblingsreiseziel eines Freundes vergessen haben und nur den Anfangsbuchstaben kennen, z. B. “m”, können Sie den Namen des Reiseziels mithilfe der folgenden Abfrage finden:

Die Abfrage gibt Folgendes zurück:

Beim Arbeiten mit Datenbanken stoßen Sie möglicherweise auf Spalten oder Tabellen mit relativ langen oder schwer lesbaren Namen. In diesen Fällen können Sie die Namen lesbarer machen, indem Sie das Schlüsselwort AS verwenden, um einen Alias zu erstellen. Aliase, die mit AS erstellt wurden, sind nur für die Dauer der Abfrage gültig, für die sie erstellt wurden:

Schritt 3 — Einführung in Aggregatfunktionen

Beim Arbeiten mit Daten möchten Sie nicht immer die Daten selbst sehen. Sie möchten lieber Informationen über die Daten haben. Durch das Absetzen einer SELECT-Abfrage können Sie Ihre Daten mithilfe der SQL-Syntax interpretieren oder Berechnungen daran durchführen. Diese werden als Aggregatfunktionen bezeichnet.

Die COUNT-Funktion zählt und gibt die Anzahl der Zeilen zurück, die bestimmte Kriterien erfüllen. Wenn Sie beispielsweise wissen möchten, wie viele Freunde lieber auf die Malediven reisen, können Sie die folgende Abfrage verwenden:

Die folgenden Ergebnisse werden zurückgegeben:

MIN wird verwendet, um den kleinsten Wert in einer bestimmten Spalte zu finden:

Die Abfrage gibt Folgendes aus:

MAX wird verwendet, um den größten numerischen Wert in einer bestimmten Spalte zu finden:

Die erwartete Ausgabe ist:

Sowohl die MIN als auch die MAX-Funktionen können auf numerische und alphabetische Daten angewendet werden. Wenn sie auf eine Spalte mit Zeichenfolgenwerten angewendet wird, gibt die MIN-Funktion den alphabetisch ersten Wert zurück.

Die MIN-Funktion gibt den alphabetisch ersten Wert zurück:

So sieht die Ausgabe aus:

Die MAX-Funktion gibt den alphabetisch letzten Wert zurück:

So wird die Ausgabe aussehen:

Schritt 4 — Abfrageergebnisse manipulieren

Eine weitere beliebte Klausel, die verwendet wird, ist die GROUP BY-Klausel. Sie wird verwendet, wenn eine Aggregatfunktion auf eine Spalte, aber in Bezug auf übereinstimmende Werte in einer anderen Spalte angewendet wird:

Die Ausgabe lautet:

Um Abfrageergebnisse zu sortieren, verwenden Sie die ORDER BY-Klausel. Numerische Werte werden standardmäßig aufsteigend sortiert, während Textwerte alphabetisch sortiert werden. Die folgende Abfrage listet die Spalten name und birthdate auf, sortiert die Ergebnisse jedoch nach birthdate:

Die Ausgabe sieht wie folgt aus:

Die Ausgabe erfolgt in aufsteigender Reihenfolge. Um in absteigender Reihenfolge zu sortieren, schließen Sie die Abfrage mit dem Wort DESC:

Werfen Sie einen Blick auf die Ausgabe:

Die HAVING-Klausel wurde zu SQL hinzugefügt, um eine ähnliche Funktionalität wie die WHERE-Klausel zu bieten, während sie gleichzeitig mit Aggregatfunktionen kompatibel ist. Der Unterschied zwischen diesen beiden Klauseln besteht darin, dass sich WHERE auf einzelne Datensätze bezieht und HAVING sich auf Gruppendatensätze bezieht. Zu diesem Zweck muss die GROUP BY-Klausel immer vorhanden sein, wenn eine HAVING-Klausel verwendet wird:

Die Abfrage gibt Folgendes aus:

Der COUNT ist bei allen 1, da keine zwei Freunde dieselbe Aktivität mögen.

Schritt 5 — Abfragen mehrerer Tabellen

Die JOIN-Klausel kann in einem Abfrageergebnis verwendet werden, um Zeilen aus zwei oder mehr Tabellen zu kombinieren. Dies wird erreicht, indem eine verknüpfte Spalte zwischen den Tabellen ausfindig gemacht und die Ausgabe entsprechend sortiert wird.

SELECT-Anweisungen, die eine JOIN-Klausel enthalten, folgen der unten stehenden Syntax:

Wenn Sie jedem Ihrer Freunde eine Trophäe für seine wins beim swimming an ihren birthdays schenken möchten, können Sie eine Abfrage erstellen, die beide Tabellen verbindet, um alle gewünschten Informationen mit einer einzigen Abfrage zu finden:

Die Ausgabe lautet:

Dies ist eine innere JOIN-Klausel. Das liegt daran, dass sie alle Datensätze auswählt, die übereinstimmende Werte in beiden Tabellen haben, und diese in einer Ergebnismenge ausgibt. Datensätze, die nicht mit der Abfrage übereinstimmen, werden nicht einbezogen. Wir können eine neue Zeile in unsere Tabellen einfügen, die keinem Eintrag entspricht:

Führen Sie dann die SELECT-Anweisung mit der JOIN-Klausel erneut aus:

Da die Tabelle „celebration“ keinen Eintrag für Peter und die Tabelle „vacation“ keinen Eintrag für Ella hat, fehlen diese Datensätze.

Wir können alle Datensätze aus einer der Tabellen zurückgeben, indem wir eine äußere JOIN-Klausel verwenden. Dies kann entweder ein LEFT JOIN oder ein RIGHT JOIN sein. Ein LEFT JOIN gibt alle Datensätze aus der linken Tabelle und nur übereinstimmende Datensätze aus der rechten Tabelle zurück. Die linke Tabelle im Kontext von Outer Joins ist diejenige, auf die in der FROM-Klausel verwiesen wird, und die rechte Tabelle ist jede Tabelle, auf die nach der JOIN-Anweisung verwiesen wird.

Führen Sie die Abfrage erneut aus, verwenden Sie jedoch eine LEFT JOIN-Klausel:

Der Befehl gibt alle Datensätze aus der linken Tabelle ( celebration) zurück, selbst wenn diese keinen entsprechenden Datensatz in der rechten Tabelle hat. Wenn es keinen übereinstimmenden Datensatz in der rechten Tabelle gibt, wird er als NULL:

Dies ist nun die RIGHT JOIN-Klausel:

Alle Werte aus der rechten Tabelle werden zurückgegeben (vacation). Da Peters birthdate in der rechten Tabelle erfasst ist und nicht in der linken Tabelle, werden die Spalten name und wins in diesen Zeilen NULL-Werte zurückgeben:

Sie können die UNION-Klausel anstelle von JOIN verwenden, um Datensätze aus mehreren Tabellen abzufragen. Der UNION-Operator unterscheidet sich von der JOIN-Klausel dadurch, dass er die Ergebnisse von zwei SELECT-Anweisungen in einer einzigen Spalte kombiniert, anstatt die Ergebnisse aus mehreren Tabellen als eindeutige Spalten mit einer einzigen SELECT-Anweisung auszugeben.

Sie können diese Abfrage ausführen, um dies zu veranschaulichen:

Die Abfrage entfernt doppelte Einträge. Dies ist das Standardverhalten des UNION-Operators:

Um alle Einträge (einschließlich Duplikate) zurückzugeben, verwenden Sie den UNION ALL-Operator:

Ausgabe:

Unterabfragen sind eine weitere Methode zur Abfrage mehrerer Tabellen. Unterabfragen sind Abfragen, die in eine andere Abfrage eingeschlossen sind (auch als innere oder verschachtelte Abfragen bezeichnet). Diese sind nützlich, wenn Sie die Ergebnisse einer Abfrage mit den Ergebnissen einer separaten Aggregatfunktion vergleichen möchten.

Wir verwenden das Beispiel, herauszufinden, welcher Freund mehr Schwimmturniere als Ella gewonnen hat. Anstatt abzufragen, wie viele Spiele Ella gewonnen hat, und dann eine weitere Abfrage auszuführen, um zu sehen, wer mehr Spiele als sie gewonnen hat, können Sie beides mit einer einzigen Abfrage berechnen:

Die Abfrage gibt Folgendes zurück:

Wenn Sie Ihre Freunde in einen Überraschungsurlaub entführen möchten, können Sie mithilfe einer Abfrage ermitteln, wer die meisten Siege hat, und deren Reiseziel zurückgeben:

Die Abfrage gibt Folgendes zurück:

Diese Anweisung enthält eine Unterabfrage innerhalb einer Unterabfrage.

Fazit

Die Generierung von Abfragen ist eine der häufigsten Aufgaben in der Datenbankverwaltung. Es gibt verschiedene Tools zur Datenbankverwaltung wie phpMyAdmin und pgAdmin, mit denen Sie mit Abfragen arbeiten und deren Ergebnisse visualisieren können. Die SELECT-Anweisung über die Befehlszeile ist jedoch aufgrund ihrer einfachen Handhabung und hervorragenden Kontrolle die bevorzugte Wahl.

Darüber hinaus gibt es viele Tutorials zu Datenbanken, die Sie in unserem Blog entdecken können:

Viel Spaß beim Computing!

author

Preslav Dobrev

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.