Level 1: Eine Tabelle mit SELECT lesen

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.

Tabelle movies (10 Zeilen)
idtitlegenreyeardurationratingdirector_id
1Night TrainThriller20151187.81
2Blue HarborDrama20181027.12
3Paper Moon CityComedy2012956.45
4Silent PeakDrama20201318.23
5Last SignalSci-Fi20191427.51
6Summer KeysComedy2016885.94
7Iron GardenSci-Fi202112583
8Dust and GoldWestern20141106.82
9The Quiet HourDrama2022977.45
10Deep CurrentThriller20171056.9NULL

Ergebnis des Beispiels

titleyearhours
Night Train20151.9666666666666666
Blue Harbor20181.7
Paper Moon City20121.5833333333333333
Silent Peak20202.183333333333333
Last Signal20192.3666666666666667
Summer Keys20161.4666666666666666
Iron Garden20212.0833333333333335
Dust and Gold20141.8333333333333333
The Quiet Hour20221.6166666666666667
Deep Current20171.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

  1. Geführt · Zeige alle Spalten der Tabelle movies. (Tabelle: movies)
  2. Training · Zeige den Titel und das Genre jedes Films. (Tabelle: movies)
  3. Training · Zeige den Titel jedes Films in einer Spalte namens film und seine Dauer in einer Spalte namens minutes. (Tabelle: movies)
  4. Training · Zeige den Namen und den Preis jedes Gerichts sowie den Preis für zwei Personen in einer Spalte namens price_for_two. (Tabelle: dishes)
  5. Herausforderung · 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). (Tabelle: flights)

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.

Level 1 in SpeedQL öffnen