Level 1: Eine Tabelle mit SELECT lesen
Aktualisiert am
Anfänger · Level 1 von 20. Ziel: Die gewünschten Spalten einer Tabelle anzeigen, sie umbenennen und neue berechnen.
Themen: SELECT * Alias AS berechnete Spalten
Lektion
Eine Datenbank speichert ihre Informationen in Tabellen. Eine Tabelle sieht aus wie ein Tabellenblatt: Jede Zeile ist ein Element (ein Film, ein Kunde, ein Verkauf) und jede Spalte eine Information über dieses Element (sein Titel, sein Jahr, seine Dauer). Alle Zeilen einer Tabelle haben dieselben Spalten.
Um eine Tabelle zu lesen, schreibst du eine Abfrage, die mit SELECT beginnt. Direkt nach SELECT folgt die Liste der gewünschten Spalten, durch Kommas getrennt, in der Reihenfolge, in der du sie sehen willst. Dann gibt FROM den Namen der Tabelle an. SELECT title, year FROM movies zeigt für jeden Film seinen Titel und sein Jahr. Der Stern * bedeutet „alle Spalten“: SELECT * FROM movies ist praktisch, um eine Tabelle kennenzulernen.
Eine SELECT-Abfrage verändert die Tabelle nie: Sie erzeugt ein Ergebnis, eine neue Tabelle, die auf dem Bildschirm angezeigt wird. Du kannst also gefahrlos ausprobieren.
Mit AS kannst du eine Spalte des Ergebnisses umbenennen: Das ist ein Alias. title AS film zeigt die Spalte unter dem Namen film. Der Alias ändert nur die Anzeige, nicht die Tabelle.
Du kannst auch eine Spalte mit + - * / berechnen: SQL rechnet für jede Zeile einzeln. price * 2 AS price_for_two ergibt in jeder Zeile den Preis für zwei Personen. Wie in Mathe gehen * und / vor + und -: Setze Klammern, um deine eigene Rechenreihenfolge festzulegen.
Vorsicht bei der Division: Die Division zweier ganzer Zahlen ergibt eine ganze Zahl, 95 / 60 ergibt 1. Schreibe 60.0, um die Nachkommastellen zu behalten.
Das abschließende Semikolon markiert das Ende der Abfrage. Schlüsselwörter wie SELECT und FROM dürfen kleingeschrieben werden, man schreibt sie aber oft groß, um sie von Spaltennamen zu unterscheiden.
Syntax
SELECT spalte1, spalte2 AS neuer_name, spalte3 * 2 AS doppelt
FROM meine_tabelle;Kommentiertes Beispiel
SELECT title, year, duration / 60.0 AS hours
FROM movies;Wir lesen drei Informationen zu jedem Film. Die dritte wird berechnet: Die Dauer in Minuten geteilt durch 60.0 ergibt Stunden, angezeigt unter dem Namen hours. SQL zeigt alle Nachkommastellen; runden lernst du mit ROUND in Level 5.
| id | title | genre | year | duration | rating | director_id |
|---|---|---|---|---|---|---|
| 1 | Night Train | Thriller | 2015 | 118 | 7.8 | 1 |
| 2 | Blue Harbor | Drama | 2018 | 102 | 7.1 | 2 |
| 3 | Paper Moon City | Comedy | 2012 | 95 | 6.4 | 5 |
| 4 | Silent Peak | Drama | 2020 | 131 | 8.2 | 3 |
| 5 | Last Signal | Sci-Fi | 2019 | 142 | 7.5 | 1 |
| 6 | Summer Keys | Comedy | 2016 | 88 | 5.9 | 4 |
| 7 | Iron Garden | Sci-Fi | 2021 | 125 | 8 | 3 |
| 8 | Dust and Gold | Western | 2014 | 110 | 6.8 | 2 |
| 9 | The Quiet Hour | Drama | 2022 | 97 | 7.4 | 5 |
| 10 | Deep Current | Thriller | 2017 | 105 | 6.9 | NULL |
Ergebnis des Beispiels
| title | year | hours |
|---|---|---|
| Night Train | 2015 | 1.9666666666666666 |
| Blue Harbor | 2018 | 1.7 |
| Paper Moon City | 2012 | 1.5833333333333333 |
| Silent Peak | 2020 | 2.183333333333333 |
| Last Signal | 2019 | 2.3666666666666667 |
| Summer Keys | 2016 | 1.4666666666666666 |
| Iron Garden | 2021 | 2.0833333333333335 |
| Dust and Gold | 2014 | 1.8333333333333333 |
| The Quiet Hour | 2022 | 1.6166666666666667 |
| Deep Current | 2017 | 1.75 |
Das Wichtigste
- SELECT nennt die Spalten, FROM die Tabelle.
- * zeigt alle Spalten, in der Reihenfolge der Tabelle.
- AS gibt einer Ergebnisspalte einen Namen, besonders nützlich bei berechneten Spalten.
Häufige Fallen
- Das Komma zwischen zwei Spalten vergessen: SELECT title year liest title und benennt es in „year“ um!
- Die Division zweier ganzer Zahlen ergibt eine ganze Zahl: 95 / 60 ist 1. Schreibe 60.0, um die Nachkommastellen zu behalten.
- price * capacity - seats_sold ist nicht price * (capacity - seats_sold): Die Multiplikation geht vor der Subtraktion.
Die 5 Übungen des Levels
- Zeige alle Spalten der Tabelle movies.
- Zeige den Titel und das Genre jedes Films.
- Zeige den Titel jedes Films in einer Spalte namens film und seine Dauer in einer Spalte namens minutes.
- Zeige den Namen und den Preis jedes Gerichts sowie den Preis für zwei Personen in einer Spalte namens price_for_two.
- Zeige für jeden Flug die Fluggesellschaft, den Umsatz des Flugs (revenue: Preis × verkaufte Plätze) und den Umsatzverlust durch leere Plätze (lost_revenue: Preis × leere Plätze).
In SpeedQL wird jede Abfrage sofort geprüft: Ihr Ergebnis wird mit dem erwarteten verglichen, dann läuft die Abfrage noch einmal auf einer versteckten Kontrolldatenbank. Zu jeder Übung gibt es schriftliche Hinweise, die du nur bei Bedarf aufrufst.
Die Übungen von Level 1 machen
Kostenlos und ohne Anmeldung: Die Lektion und die 5 Übungen öffnen sich direkt in deinem Browser.