So schreiben Sie einfache Abfragen
Veröffentlicht: 2022-03-21So fragen Sie eine SQL-Datenbank ab:
- Stellen Sie sicher, dass Sie über eine Anwendung zur Datenbankverwaltung verfügen (z. B. MySQL Workbench, Sequel Pro).
- Wenn nicht, laden Sie eine Datenbankverwaltungsanwendung herunter und arbeiten Sie mit Ihrem Unternehmen zusammen, um Ihre Datenbank zu verbinden.
- Verstehen Sie Ihre Datenbank und ihre Hierarchie.
- Finden Sie heraus, welche Felder sich in Ihren Tabellen befinden.
- Beginnen Sie mit dem Schreiben einer SQL-Abfrage, um die gewünschten Daten abzurufen.
Schon mal was von SQL gehört? Sie haben vielleicht im Zusammenhang mit der Datenanalyse davon gehört, aber nie gedacht, dass es auf Sie als Marketer zutreffen würde. Oder Sie haben vielleicht gedacht: „Das ist etwas für fortgeschrittene Datennutzer. Das könnte ich nie.“
Nun, Sie könnten nicht falscher liegen! Die erfolgreichsten Vermarkter sind datengesteuert, und einer der wichtigsten Aspekte der Datensteuerung ist das schnelle Sammeln von Daten aus Datenbanken. SQL ist das beliebteste Tool, um genau das zu tun.
Wenn Ihr Unternehmen bereits Daten in einer Datenbank speichert, müssen Sie möglicherweise SQL lernen, um auf die Daten zugreifen zu können. Aber keine Sorge – Sie sind an der richtigen Stelle, um loszulegen. Lassen Sie uns gleich einsteigen.
Warum SQL verwenden?
SQL (oft wie „Sequel“ ausgesprochen) steht für Structured Query Language und wird verwendet, wenn Unternehmen über eine Unmenge von Daten verfügen, die sie manipulieren möchten. Das Schöne an SQL ist, dass jeder, der in einem Unternehmen arbeitet, das Daten in einer relationalen Datenbank speichert, es verwenden kann. (Und die Chancen stehen gut, Ihres tut es.)
Wenn Sie beispielsweise für ein Softwareunternehmen arbeiten und Nutzungsdaten Ihrer Kunden abrufen möchten, können Sie dies mit SQL tun. Wenn Sie bei der Entwicklung einer Website für ein E-Commerce-Unternehmen helfen, das über Daten zu Kundenkäufen verfügt, können Sie SQL verwenden, um herauszufinden, welche Kunden welche Produkte kaufen. Dies sind natürlich nur einige von vielen Anwendungsmöglichkeiten.
Stellen Sie sich das so vor: Haben Sie jemals einen sehr großen Datensatz in Excel geöffnet, nur damit Ihr Computer einfriert oder sogar heruntergefahren wird? Mit SQL können Sie jeweils nur auf bestimmte Teile Ihrer Daten zugreifen, sodass Sie nicht alle Daten in eine CSV-Datei herunterladen, bearbeiten und möglicherweise Excel überlasten müssen. Mit anderen Worten, SQL übernimmt die Datenanalyse, die Sie möglicherweise von Excel gewohnt sind.
So schreiben Sie einfache SQL-Abfragen
Bevor wir beginnen, stellen Sie sicher, dass Sie über eine Datenbankverwaltungsanwendung verfügen, mit der Sie Daten aus Ihrer Datenbank ziehen können. Einige Optionen umfassen MySQL oder Sequel Pro.
Laden Sie zunächst eine dieser Optionen herunter und sprechen Sie dann mit der IT-Abteilung Ihres Unternehmens darüber, wie Sie eine Verbindung zu Ihrer Datenbank herstellen können. Welche Option Sie wählen, hängt vom Backend Ihres Produkts ab. Wenden Sie sich daher an Ihr Produktteam, um sicherzustellen, dass Sie die richtige Option auswählen.
Verstehen Sie die Hierarchie Ihrer Datenbank
Als nächstes ist es wichtig, sich an Ihre Datenbank und ihre Hierarchie zu gewöhnen. Wenn Sie über mehrere Datenbanken mit Daten verfügen, müssen Sie sich auf den Speicherort der Daten konzentrieren, mit denen Sie arbeiten möchten.
Nehmen wir zum Beispiel an, wir arbeiten mit mehreren Datenbanken über Menschen in den Vereinigten Staaten. Geben Sie die Abfrage „SHOW DATABASES;“ ein. Die Ergebnisse können zeigen, dass Sie mehrere Datenbanken für verschiedene Standorte haben, darunter eine für Neuengland.
In Ihrer Datenbank haben Sie verschiedene Tabellen mit den Daten, mit denen Sie arbeiten möchten. Angenommen, wir möchten anhand des obigen Beispiels herausfinden, welche Informationen in einer der Datenbanken enthalten sind. Wenn wir die Abfrage „SHOW TABLES in NewEngland“ verwenden, werden wir feststellen, dass wir Tabellen für jeden Staat in Neuengland haben: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland und people_vermont.
Schließlich müssen Sie herausfinden, welche Felder sich in den Tabellen befinden. Felder sind die spezifischen Datenelemente, die Sie aus Ihrer Datenbank abrufen können. Wenn Sie beispielsweise die Adresse einer Person abrufen möchten, lautet der Feldname möglicherweise nicht nur „Adresse“ – er kann in address_city, address_state, address_zip unterteilt werden. Um dies herauszufinden, verwenden Sie die Abfrage „Describe people_massachusetts;“. Dies stellt eine Liste aller Daten bereit, die Sie mit SQL abrufen können.
Lassen Sie uns anhand unseres Beispiels aus Neuengland einen kurzen Überblick über die Hierarchie geben:
- Unsere Datenbank ist: NewEngland.
- Unsere Tabellen in dieser Datenbank sind: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland und people_vermont.
- Unsere Felder in der Tabelle people_massachusetts umfassen: address_city, address_state, address_zip, hair_color, age, first_name und last_name.
Lassen Sie uns nun einige einfache SQL-Abfragen schreiben, um Daten aus unserer NewEngland-Datenbank abzurufen.
Grundlegende SQL-Abfragen
Um zu lernen, wie man eine SQL-Abfrage schreibt, verwenden wir das folgende Beispiel:
Wer sind die Menschen, die in Massachusetts rote Haare haben und 2003 geboren wurden, in alphabetischer Reihenfolge?
AUSWÄHLEN
SELECT wählt die Felder aus, die in Ihrem Diagramm angezeigt werden sollen. Dies ist die spezifische Information, die Sie aus Ihrer Datenbank ziehen möchten. Im obigen Beispiel möchten wir die Personen finden, die den Rest der Kriterien erfüllen.
Hier ist unsere SQL-Abfrage:
AUSWÄHLEN
Vorname,
Nachname
;
AUS
FROM gibt die Tabelle an, aus der Sie die Daten abrufen möchten. Im vorherigen Abschnitt haben wir gelernt, dass es sechs Tabellen für jeden der sechs Staaten in Neuengland gibt: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland und people_vermont. Da wir speziell nach Personen in Massachusetts suchen, ziehen wir Daten aus dieser speziellen Tabelle.
Hier ist unsere SQL-Abfrage:
AUSWÄHLEN
Vorname,
Nachname
AUS
menschen_massachusetts
;
WO
WHERE ermöglicht es Ihnen, eine Abfrage spezifischer zu filtern. In unserem Beispiel möchten wir unsere Abfrage so filtern, dass nur Personen mit roten Haaren enthalten sind, die im Jahr 2003 geboren wurden. Beginnen wir mit dem Filter für rote Haare.
Hier ist unsere SQL-Abfrage:
AUSWÄHLEN
Vorname,
Nachname
AUS
menschen_massachusetts
WO
hair_color="rot"
;
Haarfarbe hätte Teil Ihrer ursprünglichen SELECT-Anweisung sein können, wenn Sie sich alle Menschen in Massachusetts zusammen mit ihrer Haarfarbe ansehen wollten. Wenn Sie jedoch nur Personen mit roten Haaren filtern möchten, können Sie dies mit einer WHERE-Anweisung tun.
ZWISCHEN
Neben Gleichheit (=) ist BETWEEN ein weiterer Operator, den Sie für bedingte Abfragen verwenden können. Eine BETWEEN-Anweisung gilt für Werte, die zwischen den angegebenen Minimal- und Maximalwerten liegen.
In unserem Fall können wir BETWEEN verwenden, um Datensätze aus einem bestimmten Jahr wie 2003 abzurufen. Hier ist die Abfrage:
AUSWÄHLEN
Vorname,
Nachname
AUS
menschen_massachusetts
WO
Geburtsdatum ZWISCHEN '2003-01-01' UND '2003-12-31'
;
UND
AND ermöglicht es Ihnen, zusätzliche Kriterien zu Ihrer WHERE-Anweisung hinzuzufügen. Denken Sie daran, dass wir zusätzlich zu den im Jahr 2003 geborenen Personen auch nach Personen mit roten Haaren filtern möchten. Wie können wir, da unsere WHERE-Anweisung von den Kriterien für rote Haare übernommen wird, auch nach einem bestimmten Geburtsjahr filtern?
Hier kommt die AND-Anweisung ins Spiel. In diesem Fall ist die AND-Anweisung eine Datumseigenschaft – muss es aber nicht unbedingt sein. (Hinweis: Überprüfen Sie das Format Ihrer Daten mit Ihrem Produktteam, um sicherzustellen, dass sie das richtige Format haben.)
Hier ist unsere SQL-Abfrage:
AUSWÄHLEN
Vorname,
Nachname
AUS
menschen_massachusetts
WO
hair_color="rot"
UND
Geburtsdatum ZWISCHEN '2003-01-01' UND '2003-12-31'
;
ODER
OR kann auch mit einer WHERE-Anweisung verwendet werden. Bei UND müssen beide Bedingungen wahr sein, damit sie in den Ergebnissen erscheinen (z. B. muss die Haarfarbe rot sein und im Jahr 2003 geboren sein). Bei ODER muss eine Bedingung wahr sein, um in den Ergebnissen angezeigt zu werden (z. B. muss die Haarfarbe rot sein oder muss im Jahr 2003 geboren sein).
So sieht eine ODER-Anweisung in Aktion aus:
AUSWÄHLEN
Vorname,
Nachname
AUS
menschen_massachusetts
WO
hair_color = 'rot'
ODER
Geburtsdatum ZWISCHEN '2003-01-01' UND '2003-12-31'
;
NICHT
NOT wird in einer WHERE-Anweisung verwendet, um Werte anzuzeigen, bei denen die angegebene Bedingung nicht wahr ist. Wenn wir alle Einwohner von Massachusetts ohne rote Haare abrufen möchten, können wir die folgende Abfrage verwenden:
AUSWÄHLEN
Vorname,
Nachname
AUS
menschen_massachusetts
WO NICHT
hair_color = 'rot'
;
SORTIEREN NACH
Berechnungen und Organisation können auch innerhalb einer Abfrage erfolgen. Hier kommen die Funktionen ORDER BY und GROUP BY ins Spiel. Zuerst sehen wir uns unsere SQL-Abfragen mit den Funktionen ORDER BY und dann GROUP BY an. Dann werfen wir einen kurzen Blick auf den Unterschied zwischen den beiden.
Mit einer ORDER BY-Klausel können Sie nach beliebigen Feldern sortieren, die Sie in der SELECT-Anweisung angegeben haben. Sortieren wir in diesem Fall nach Nachnamen.
Hier ist unsere SQL-Abfrage:
AUSWÄHLEN
Vorname,
Nachname
AUS
menschen_massachusetts
WO
hair_color = 'rot'
UND
Geburtsdatum ZWISCHEN '2003-01-01' UND '2003-12-31'
SORTIEREN NACH
Nachname
;
GRUPPIERE NACH
GROUP BY ähnelt ORDER BY, aggregiert jedoch Daten, die Ähnlichkeiten aufweisen. Wenn Sie beispielsweise Duplikate in Ihren Daten haben, können Sie GROUP BY verwenden, um die Anzahl der Duplikate in Ihren Feldern zu zählen.
Hier ist Ihre SQL-Abfrage:
AUSWÄHLEN
Vorname,
Nachname
AUS
menschen_massachusetts
WO
hair_color = 'rot'
UND
Geburtsdatum ZWISCHEN '2003-01-01' UND '2003-12-31'
GRUPPIERE NACH
Nachname
;
BESTELLEN NACH VS. GRUPPIERE NACH
Um den Unterschied zwischen einer ORDER BY-Anweisung und einer GROUP BY-Anweisung zu zeigen, gehen wir kurz aus unserem Massachusetts-Beispiel heraus, um einen sehr einfachen Datensatz zu betrachten. Nachfolgend finden Sie eine Liste mit den ID-Nummern und Namen von vier Mitarbeitern.
Wenn wir in dieser Liste eine ORDER BY-Anweisung verwenden würden, würden die Namen der Mitarbeiter in alphabetischer Reihenfolge sortiert. Das Ergebnis würde so aussehen:
Würden wir stattdessen eine GROUP BY-Anweisung verwenden, würden die Mitarbeiter basierend darauf gezählt, wie oft sie in der Ausgangstabelle erschienen sind. Beachten Sie, dass Peter zweimal in der Anfangstabelle auftaucht, das Ergebnis würde also so aussehen:
Bei mir bisher? Okay, kehren wir zu der SQL-Abfrage zurück, die wir über rothaarige Menschen in Massachusetts erstellt haben, die 2003 geboren wurden.
GRENZE
Abhängig von der Datenmenge, die Sie in Ihrer Datenbank haben, kann es lange dauern, Ihre Abfragen auszuführen. Das kann frustrierend sein, besonders wenn Sie einen Fehler in Ihrer Abfrage gemacht haben und jetzt warten müssen, bevor Sie fortfahren können. Wenn Sie eine Abfrage testen möchten, können Sie mit der LIMIT-Funktion die Anzahl der erhaltenen Ergebnisse begrenzen.
Wenn wir beispielsweise vermuten, dass es in Massachusetts Tausende von Menschen mit roten Haaren gibt, sollten wir unsere Abfrage mit LIMIT testen, bevor wir sie vollständig ausführen, um sicherzustellen, dass wir die gewünschten Informationen erhalten. Nehmen wir zum Beispiel an, wir möchten nur die ersten 100 Personen in unserem Ergebnis sehen.
Hier ist unsere SQL-Abfrage:
AUSWÄHLEN
Vorname,
Nachname
AUS
menschen_massachusetts
WO
hair_color = 'rot'
UND
Geburtsdatum ZWISCHEN '2003-01-01' UND '2003-12-31'
SORTIEREN NACH
Nachname
GRENZE
100
;
EINFÜGEN IN
Neben dem Abrufen von Informationen aus einer relationalen Datenbank kann SQL auch zum Ändern des Inhalts einer Datenbank verwendet werden. Natürlich benötigen Sie Berechtigungen, um Änderungen an den Daten Ihres Unternehmens vorzunehmen. Aber falls Sie jemals für die Verwaltung des Inhalts einer Datenbank verantwortlich sind, teilen wir einige Abfragen, die Sie kennen sollten.

Die erste ist die INSERT INTO-Anweisung, mit der neue Werte in Ihre Datenbank eingefügt werden. Wenn wir der Massachusetts-Tabelle eine neue Person hinzufügen möchten, können wir dies tun, indem wir zuerst den Namen der Tabelle angeben, die wir ändern möchten, und die Felder in der Tabelle, zu der wir etwas hinzufügen möchten. Als nächstes schreiben wir VALUE mit jedem jeweiligen Wert, den wir hinzufügen möchten.
So könnte diese Abfrage aussehen:
EINFÜGEN IN
people_massachusetts (Adresse_Stadt, Adresse_Staat, Adresse_PLZ, Haarfarbe, Alter, Vorname, Nachname)
WERTE
(Cambridge, Massachusetts, 02139, blond, 32, Jane, Doe)
;
Wenn Sie alternativ jedem Feld in der Tabelle einen Wert hinzufügen, müssen Sie keine Felder angeben. Die Werte werden den Spalten in der Reihenfolge hinzugefügt, in der sie in der Abfrage aufgeführt sind.
EINFÜGEN IN
menschen_massachusetts
WERTE
(Cambridge, Massachusetts, 02139, blond, 32, Jane, Doe)
;
Wenn Sie nur bestimmten Feldern Werte hinzufügen möchten, müssen Sie diese Felder angeben. Angenommen, wir möchten nur einen Datensatz mit Vorname, Nachname und Adressstatus einfügen – wir können die folgende Abfrage verwenden:
EINFÜGEN IN
people_massachusetts (Vorname, Nachname, Adresse_Staat)
WERTE
(Jane, Doe, Massachusetts)
;
AKTUALISIEREN
Wenn Sie vorhandene Werte in Ihrer Datenbank durch andere Werte ersetzen möchten, können Sie UPDATE verwenden. Was ist, wenn beispielsweise jemand in der Datenbank mit roten Haaren erfasst ist, obwohl er tatsächlich braune Haare hat? Wir können diesen Datensatz mit UPDATE- und WHERE-Anweisungen aktualisieren:
AKTUALISIEREN
menschen_massachusetts
EINSTELLEN
hair_color = 'braun'
WO
first_name = 'Jane'
UND
last_name = 'Hirschkuh'
;
Oder sagen wir, es gibt ein Problem in Ihrer Tabelle, bei dem einige Werte für „address_state“ als „Massachusetts“ und andere als „MA“ angezeigt werden. Um alle Instanzen von „MA“ in „Massachusetts“ zu ändern, können wir eine einfache Abfrage verwenden und mehrere Datensätze gleichzeitig aktualisieren:
AKTUALISIEREN
menschen_massachusetts
EINSTELLEN
address_state = 'Massachusetts'
WO
address_state = MA
;
Seien Sie vorsichtig, wenn Sie UPDATE verwenden. Wenn Sie nicht mit einer WHERE-Anweisung angeben, welche Datensätze geändert werden sollen, ändern Sie alle Werte in der Tabelle.
LÖSCHEN
DELETE entfernt Datensätze aus Ihrer Tabelle. Stellen Sie wie bei UPDATE sicher, dass Sie eine WHERE-Anweisung einfügen, damit Sie nicht versehentlich Ihre gesamte Tabelle löschen.
Oder wenn wir zufällig mehrere Datensätze in unserer Tabelle people_massachusetts finden, die tatsächlich in Maine gelebt haben, können wir diese Einträge schnell löschen, indem wir das Feld address_state wie folgt anvisieren:
LÖSCHEN VON
menschen_massachusetts
WO
address_state = 'maine'
;
Bonus: Fortgeschrittene SQL-Tipps
Nachdem Sie nun gelernt haben, wie man eine einfache SQL-Abfrage erstellt, lassen Sie uns einige andere Tricks besprechen, mit denen Sie Ihre Abfragen verbessern können, beginnend mit dem Sternchen.
* (Sternchen)
Wenn Sie Ihrer SQL-Abfrage ein Sternchen hinzufügen, teilt dies der Abfrage mit, dass Sie alle Datenspalten in Ihre Ergebnisse einbeziehen möchten.
In dem Beispiel aus Massachusetts, das wir verwendet haben, hatten wir nur zwei Spaltennamen: first_name und last_name. Aber nehmen wir an, wir hätten 15 Datenspalten, die wir in unseren Ergebnissen sehen möchten – es wäre mühsam, alle 15 Spaltennamen in die SELECT-Anweisung einzugeben. Wenn Sie stattdessen die Namen dieser Spalten durch ein Sternchen ersetzen, weiß die Abfrage, dass alle Spalten in die Ergebnisse gezogen werden sollen.
So würde die SQL-Abfrage aussehen:
AUSWÄHLEN
*
AUS
menschen_massachusetts
WO
hair_color="rot"
UND
Geburtsdatum ZWISCHEN '2003-01-01' UND '2003-12-31'
SORTIEREN NACH
Nachname
GRENZE
100
;
% (Prozentzeichen)
Das Prozentzeichen ist ein Platzhalterzeichen, d. h. es kann ein oder mehrere Zeichen in einem Datenbankwert darstellen. Platzhalterzeichen sind hilfreich, um Datensätze zu finden, die gemeinsame Zeichen aufweisen. Sie werden normalerweise mit dem LIKE-Operator verwendet, um ein Muster in den Daten zu finden.
Wenn wir beispielsweise die Namen aller Personen in unserer Tabelle erhalten möchten, deren Postleitzahl mit „02“ beginnt, können wir diese Abfrage schreiben:
AUSWÄHLEN
Vorname,
Nachname
WO
address_zip LIKE '02%'
;
Hier steht „%“ für eine beliebige Zifferngruppe, die auf „02“ folgt, sodass diese Abfrage jeden Datensatz mit einem Wert für address_zip aufdeckt, der mit „02“ beginnt.
LETZTE 30 TAGE
Als ich anfing, SQL regelmäßig zu verwenden, stellte ich fest, dass eine meiner häufigsten Abfragen darin bestand, herauszufinden, welche Personen in den letzten 30 Tagen eine Aktion durchgeführt oder bestimmte Kriterien erfüllt hatten.
Nehmen wir an, heute wäre der 1. Dezember 2021. Sie könnten diese Parameter erstellen, indem Sie das Geburtsdatum auf einen Zeitraum zwischen dem 1. November 2021 und dem 30. November 2021 festlegen. Diese SQL-Abfrage würde folgendermaßen aussehen:
AUSWÄHLEN
Vorname,
Nachname
AUS
menschen_massachusetts
WO
hair_color="rot"
UND
Geburtsdatum ZWISCHEN '2021-11-01' UND '2021-11-30'
SORTIEREN NACH
Nachname
GRENZE
100
;
Dazu müssten Sie jedoch darüber nachdenken, welche Daten die letzten 30 Tage abdecken, und Sie müssten diese Abfrage ständig aktualisieren.
Damit die Daten automatisch die letzten 30 Tage umfassen, egal welcher Tag, können Sie stattdessen Folgendes unter AND eingeben: Geburtsdatum >= (DATE_SUB(CURDATE(),INTERVAL 30))
(Hinweis: Sie sollten diese Syntax mit Ihrem Produktteam überprüfen, da sie je nach Software, die Sie zum Abrufen Ihrer SQL-Abfragen verwenden, unterschiedlich sein kann.)
Ihre vollständige SQL-Abfrage würde daher folgendermaßen aussehen:
AUSWÄHLEN
Vorname,
Nachname
AUS
menschen_massachusetts
WO
hair_color="rot"
UND
Geburtsdatum >= (DATE_SUB(CURDATE(),INTERVAL 30))
SORTIEREN NACH
Nachname
GRENZE
100
;
ZÄHLEN
In manchen Fällen möchten Sie vielleicht zählen, wie oft ein Kriterium eines Felds vorkommt. Angenommen, Sie möchten zählen, wie oft die unterschiedlichen Haarfarben für die Personen aus Massachusetts auftreten, die Sie zählen. In diesem Fall ist COUNT praktisch, damit Sie die Anzahl der Personen mit unterschiedlichen Haarfarben nicht manuell zusammenzählen oder diese Informationen nach Excel exportieren müssen.
So würde diese SQL-Abfrage aussehen:
AUSWÄHLEN
Haarfarbe,
COUNT(haarfarbe)
AUS
menschen_massachusetts
UND
Geburtsdatum ZWISCHEN '2003-01-01' UND '2003-12-31'
GRUPPIERE NACH
Haarfarbe
;
Durchschn
AVG berechnet den Durchschnitt eines Attributs in den Ergebnissen Ihrer Abfrage, ausgenommen NULL-Werte (leer). In unserem Beispiel könnten wir AVG verwenden, um das Durchschnittsalter der Einwohner von Massachusetts in unserer Abfrage zu berechnen.
So könnte unsere SQL-Abfrage aussehen:
AUSWÄHLEN
Durchschnitt (Alter)
AUS
menschen_massachusetts
;
SUMME
SUM ist eine weitere einfache Berechnung, die Sie in SQL durchführen können. Es berechnet den Gesamtwert aller Attribute aus Ihrer Abfrage. Wenn wir also alle Altersgruppen der Einwohner von Massachusetts zusammenzählen möchten, können wir diese Abfrage verwenden:
AUSWÄHLEN
SUM(Alter)
AUS
menschen_massachusetts
;
MIN und MAX
MIN und MAX sind zwei SQL-Funktionen, die Ihnen den kleinsten und größten Wert eines bestimmten Felds liefern. Wir können es verwenden, um die ältesten und jüngsten Mitglieder unserer Massachusetts-Tabelle zu identifizieren:
Diese Abfrage gibt uns den Datensatz des ältesten:
AUSWÄHLEN
Mindestalter (Alter)
AUS
menschen_massachusetts
;
Und diese Abfrage gibt uns die älteste:
AUSWÄHLEN
MAX (Alter)
AUS
menschen_massachusetts
;
BEITRETEN
Es kann vorkommen, dass Sie in einer SQL-Abfrage auf Informationen aus zwei verschiedenen Tabellen zugreifen müssen. In SQL können Sie dazu eine JOIN-Klausel verwenden.
(Für diejenigen, die mit Excel-Formeln vertraut sind, ähnelt dies der Verwendung der VLOOKUP-Formel, wenn Sie Informationen aus zwei verschiedenen Excel-Blättern kombinieren müssen.)
Nehmen wir an, wir haben eine Tabelle, die die Benutzer-IDs aller Einwohner von Massachusetts und ihre Geburtsdaten enthält. Darüber hinaus haben wir eine völlig separate Tabelle, die die Benutzer-IDs aller Einwohner von Massachusetts und ihre Haarfarbe enthält.
Wenn wir die Haarfarbe der im Jahr 2003 geborenen Einwohner von Massachusetts herausfinden möchten, müssten wir auf Informationen aus beiden Tabellen zugreifen und sie kombinieren. Dies funktioniert, weil beide Tabellen eine übereinstimmende Spalte teilen: Benutzer-IDs.
Da wir Felder aus zwei verschiedenen Tabellen aufrufen, wird sich auch unsere SELECT-Anweisung leicht ändern. Anstatt nur die Felder aufzulisten, die wir in unsere Ergebnisse aufnehmen möchten, müssen wir angeben, aus welcher Tabelle sie stammen. (Hinweis: Die Sternchenfunktion kann sich hier als nützlich erweisen, sodass Ihre Abfrage beide Tabellen in Ihre Ergebnisse einbezieht.)
Um ein Feld aus einer bestimmten Tabelle anzugeben, müssen wir lediglich den Namen der Tabelle mit dem Namen des Felds kombinieren. Unsere SELECT-Anweisung würde beispielsweise „Tabelle.Feld“ lauten – wobei der Punkt den Tabellennamen und den Feldnamen trennt.
Wir gehen auch in diesem Fall von ein paar Dingen aus:
- Die Massachusetts-Geburtsdatumstabelle enthält die folgenden Felder: Vorname, Nachname, Benutzer-ID, Geburtsdatum
- Die Haarfarbentabelle von Massachusetts enthält die folgenden Felder: user_id, hair_color
Ihre SQL-Abfrage würde daher wie folgt aussehen:
AUSWÄHLEN
Geburtsdatum_Massachusetts.Vorname,
Geburtsdatum_Massachusetts.Nachname
AUS
Geburtsdatum_massachusetts JOIN haircolor_massachusetts USING (user_id)
WO
hair_color="rot"
UND
Geburtsdatum ZWISCHEN '2003-01-01' UND '2003-12-31'
SORTIEREN NACH
Nachname
;
Diese Abfrage würde die beiden Tabellen mithilfe des Felds „user_id“ verbinden, das sowohl in der Tabelle „birthdate_massachusetts“ als auch in der Tabelle „haircolor_massachusetts“ erscheint. Sie können dann eine Tabelle mit Personen sehen, die 2003 geboren wurden und rote Haare haben.
FALL
Verwenden Sie eine CASE-Anweisung, wenn Sie abhängig davon, welche Bedingung erfüllt ist, unterschiedliche Ergebnisse an Ihre Abfrage zurückgeben möchten. Die Bedingungen werden der Reihe nach ausgewertet. Sobald eine Bedingung erfüllt ist, wird das entsprechende Ergebnis zurückgegeben und alle folgenden Bedingungen werden übersprungen.
Sie können am Ende eine ELSE-Bedingung einfügen, falls keine Bedingungen erfüllt sind. Ohne ELSE gibt die Abfrage NULL zurück, wenn keine Bedingungen erfüllt sind.
Hier ist ein Beispiel für die Verwendung von CASE, um eine Zeichenfolge basierend auf der Abfrage zurückzugeben:
AUSWÄHLEN
Vorname,
Nachname
AUS
menschen_massachusetts
FALL
WHEN hair_color = 'brown' THEN 'Diese Person hat braune Haare.'
WHEN hair_color = 'blonde' THEN 'Diese Person hat blonde Haare.'
WHEN hair_color = 'red' THEN 'Diese Person hat rote Haare.'
ELSE 'Haarfarbe nicht bekannt.'
ENDE
;
Grundlegende SQL-Abfragen, die Marketer kennen sollten
Herzliche Glückwünsche. Sie sind bereit, Ihre eigenen SQL-Abfragen auszuführen! Obwohl Sie mit SQL noch viel mehr tun können, hoffe ich, dass Sie diesen Überblick über die Grundlagen hilfreich fanden, damit Sie sich die Hände schmutzig machen können. Mit einem soliden Fundament der Grundlagen werden Sie in der Lage sein, sich besser in SQL zurechtzufinden und auf einige der komplexeren Beispiele hinzuarbeiten.
Anmerkung des Herausgebers: Dieser Beitrag wurde ursprünglich am 25. März veröffentlicht und wurde aus Gründen der Vollständigkeit aktualisiert.