SQL Abfrage zur Identifizierung von Städten mit mehr als 1 Million Einwohnern am Pazifik
Wie kann ich mit Hilfe einer SQL Abfrage die Städte identifizieren, die am Pazifik liegen und mehr als 1 Million Einwohner haben?
Du hast den richtigen Ansatz gewählt um die gewünschten Informationen zu erhalten. Allerdings fehlt in deiner Abfrage ein Unterstrich sodass die Abfrage nicht erfolgreich ist. Eine korrigierte Version der Abfrage könnte wie folgt aussehen:
SELECT ST.ST_NAME
FROM LIEGT_AN LA, STADT ST
WHERE LA.ST_NAME = ST.ST_NAME
AND LA.M_NAME = 'Pazifischer_Ozean'
AND ST.EINWOHNER > 1000000
Die Abfrage besteht aus zwei Tabellen: "LIEGT_AN" und "STADT". Die Tabelle "LIEGT_AN" enthält Informationen darüber welche Stadt an welchem Ort liegt. Dabei ist die Spalte "ST_NAME" der Städtenamen und die Spalte "M_NAME" der Name des Meeres oder Ozeans, an dem die Stadt liegt. Die Tabelle "STADT" enthält Informationen über die Städte, einschließlich der Einwohnerzahl in der Spalte "EINWOHNER".
Um die gewünschten Städte zu identifizieren, müssen wir die Tabellen "LIEGT_AN" und "STADT" verknüpfen. Dies geschieht mit Hilfe des JOIN-Befehls. In unserem Fall verknüpfen wir die Tabellen über die Spalte "ST_NAME", da diese in beiden Tabellen vorhanden ist.
In der WHERE-Klausel werden dann die Filterkriterien festgelegt. Wir wollen nur die Städte am Pazifik identifizieren, deshalb filtern wir nach "M_NAME = 'Pazifischer_Ozean'". Zusätzlich möchten wir nur die Städte anzeigen die weiterhin als 1 Million Einwohner haben. Daher fügen wir den Filter "ST.EINWOHNER > 1000000″ hinzu.
Durch Ausführung dieser SQL-Abfrage erhalten wir eine Liste der Städte die am Pazifik liegen und mehr als 1 Million Einwohner haben.
Eine weitere Verbesserung könnte darin bestehen die Abfrage mit dem ANSI-Standard für JOINs zu schreiben, anstatt mit dem alten JOIN-Syntax. Die Abfrage würde dann wie folgt aussehen:
SELECT ST.ST_NAME
FROM LIEGT_AN LA
JOIN STADT ST ON LA.ST_NAME = ST.ST_NAME
WHERE LA.M_NAME = 'Pazifischer_Ozean'
AND ST.EINWOHNER > 1000000
Dieser ANSI-Standard für JOINs ist in der Regel besser lesbar und ebenfalls besser für die Wartbarkeit des Codes.
SELECT ST.ST_NAME
FROM LIEGT_AN LA, STADT ST
WHERE LA.ST_NAME = ST.ST_NAME
AND LA.M_NAME = 'Pazifischer_Ozean'
AND ST.EINWOHNER > 1000000
Die Abfrage besteht aus zwei Tabellen: "LIEGT_AN" und "STADT". Die Tabelle "LIEGT_AN" enthält Informationen darüber welche Stadt an welchem Ort liegt. Dabei ist die Spalte "ST_NAME" der Städtenamen und die Spalte "M_NAME" der Name des Meeres oder Ozeans, an dem die Stadt liegt. Die Tabelle "STADT" enthält Informationen über die Städte, einschließlich der Einwohnerzahl in der Spalte "EINWOHNER".
Um die gewünschten Städte zu identifizieren, müssen wir die Tabellen "LIEGT_AN" und "STADT" verknüpfen. Dies geschieht mit Hilfe des JOIN-Befehls. In unserem Fall verknüpfen wir die Tabellen über die Spalte "ST_NAME", da diese in beiden Tabellen vorhanden ist.
In der WHERE-Klausel werden dann die Filterkriterien festgelegt. Wir wollen nur die Städte am Pazifik identifizieren, deshalb filtern wir nach "M_NAME = 'Pazifischer_Ozean'". Zusätzlich möchten wir nur die Städte anzeigen die weiterhin als 1 Million Einwohner haben. Daher fügen wir den Filter "ST.EINWOHNER > 1000000″ hinzu.
Durch Ausführung dieser SQL-Abfrage erhalten wir eine Liste der Städte die am Pazifik liegen und mehr als 1 Million Einwohner haben.
Eine weitere Verbesserung könnte darin bestehen die Abfrage mit dem ANSI-Standard für JOINs zu schreiben, anstatt mit dem alten JOIN-Syntax. Die Abfrage würde dann wie folgt aussehen:
SELECT ST.ST_NAME
FROM LIEGT_AN LA
JOIN STADT ST ON LA.ST_NAME = ST.ST_NAME
WHERE LA.M_NAME = 'Pazifischer_Ozean'
AND ST.EINWOHNER > 1000000
Dieser ANSI-Standard für JOINs ist in der Regel besser lesbar und ebenfalls besser für die Wartbarkeit des Codes.