Zum Inhalt springen
SQL Anfänger 15 min

Deine erste Abfrage

Schreibe deine erste SQL-Abfrage und lerne die Grundstruktur von SELECT-Anweisungen. Mit praktischen Beispielen aus unserer Shop-Datenbank.

Aktualisiert:

Jetzt wird es spannend - du schreibst deine allererste SQL-Abfrage! In den letzten Tutorials hast du gelernt, was SQL ist und deine Umgebung eingerichtet. Jetzt fragen wir endlich Daten ab.

Deine erste Abfrage

Oeffne deine SQL-Umgebung (SQLite, PostgreSQL oder ein GUI-Tool) und stelle sicher, dass du die Uebungsdatenbank aus dem Setup-Tutorial geladen hast.

Tippe jetzt folgende Abfrage ein:

SELECT * FROM kunden;

Das Ergebnis sollte so aussehen:

id | name          | email              | stadt    | registriert_am
---+---------------+--------------------+----------+---------------
 1 | Anna Schmidt  | anna@example.com   | Berlin   | 2026-03-10
 2 | Max Mueller   | max@example.com    | Hamburg  | 2026-03-10
 3 | Lisa Weber    | lisa@example.com   | Muenchen | 2026-03-10
 4 | Tom Becker    | tom@example.com    | Berlin   | 2026-03-10
 5 | Sarah Klein   | sarah@example.com  | Koeln    | 2026-03-10

Herzlichen Glueckwunsch! Du hast gerade deine erste SQL-Abfrage geschrieben.

Die Grundstruktur verstehen

Jede SELECT-Abfrage hat mindestens zwei Teile:

SELECT was_du_sehen_willst
FROM welche_tabelle;
  • SELECT sagt der Datenbank, welche Spalten du sehen willst
  • FROM sagt der Datenbank, aus welcher Tabelle die Daten kommen

Das Sternchen (*)

Das * bedeutet “alle Spalten”. Es ist praktisch zum Erkunden, aber in der Praxis solltest du besser die Spalten angeben, die du wirklich brauchst:

-- Alle Spalten (zum Erkunden ok)
SELECT * FROM produkte;

-- Besser: Nur die Spalten, die du brauchst
SELECT name, preis FROM produkte;

Bestimmte Spalten auswaehlen

Meistens brauchst du nicht alle Spalten. Gib einfach die gewuenschten Spalten an, getrennt durch Kommas:

-- Nur Name und Stadt der Kunden
SELECT name, stadt
FROM kunden;

Ergebnis:

name          | stadt
--------------+---------
Anna Schmidt  | Berlin
Max Mueller   | Hamburg
Lisa Weber    | Muenchen
Tom Becker    | Berlin
Sarah Klein   | Koeln
-- Produkte mit Name, Preis und Kategorie
SELECT name, preis, kategorie
FROM produkte;

Ergebnis:

name           | preis  | kategorie
---------------+--------+------------
T-Shirt Basic  |  19.99 | Kleidung
Jeans Classic  |  49.99 | Kleidung
Sneaker Sport  |  79.99 | Schuhe
Rucksack Urban |  39.99 | Accessoires
Muetze Winter  |  14.99 | Accessoires
Jacke Outdoor  | 129.99 | Kleidung

Spalten umbenennen mit AS

Manchmal moechtest du den Spalten im Ergebnis andere Namen geben. Dafuer nutzt du AS (Alias):

SELECT
    name AS kundenname,
    email AS kontakt,
    stadt AS wohnort
FROM kunden;

Ergebnis:

kundenname    | kontakt            | wohnort
--------------+--------------------+---------
Anna Schmidt  | anna@example.com   | Berlin
Max Mueller   | max@example.com    | Hamburg
Lisa Weber    | lisa@example.com   | Muenchen

Aliase sind besonders nuetzlich, wenn du Berechnungen machst:

SELECT
    name,
    preis AS originalpreis,
    preis * 0.9 AS reduzierter_preis
FROM produkte;

Ergebnis:

name           | originalpreis | reduzierter_preis
---------------+--------------+------------------
T-Shirt Basic  |        19.99 |            17.99
Jeans Classic  |        49.99 |            44.99
Sneaker Sport  |        79.99 |            71.99

Berechnungen in Abfragen

SQL kann direkt rechnen! Du kannst mathematische Ausdruecke in der SELECT-Klausel verwenden:

-- Preis mit Mehrwertsteuer berechnen
SELECT
    name,
    preis AS netto,
    preis * 1.19 AS brutto
FROM produkte;
-- Lagerbestand als Wert berechnen
SELECT
    name,
    preis,
    lagerbestand,
    preis * lagerbestand AS lagerwert
FROM produkte;

Ergebnis:

name           | preis  | lagerbestand | lagerwert
---------------+--------+--------------+----------
T-Shirt Basic  |  19.99 |          100 |  1999.00
Jeans Classic  |  49.99 |           50 |  2499.50
Sneaker Sport  |  79.99 |           30 |  2399.70
Rucksack Urban |  39.99 |           25 |   999.75
Muetze Winter  |  14.99 |           75 |  1124.25
Jacke Outdoor  | 129.99 |           20 |  2599.80

Texte verbinden (Konkatenation)

Du kannst Textspalten zusammenfuegen. Die Syntax unterscheidet sich leicht:

-- PostgreSQL: || Operator
SELECT name || ' kostet ' || preis || ' Euro' AS info
FROM produkte;

-- SQLite: || Operator (gleich wie PostgreSQL)
SELECT name || ' kostet ' || preis || ' Euro' AS info
FROM produkte;

Ergebnis:

info
-----------------------------
T-Shirt Basic kostet 19.99 Euro
Jeans Classic kostet 49.99 Euro
Sneaker Sport kostet 79.99 Euro

Kommentare in SQL

Kommentare helfen dir, deinen Code zu dokumentieren:

-- Das ist ein einzeiliger Kommentar

/* Das ist ein
   mehrzeiliger
   Kommentar */

SELECT name, preis  -- Kommentar am Ende einer Zeile
FROM produkte;

Haeufige Anfaengerfehler

1. Semikolon vergessen

-- Falsch (fehlendes Semikolon):
SELECT * FROM kunden

-- Richtig:
SELECT * FROM kunden;

Das Semikolon beendet eine SQL-Anweisung. Manche Tools verzeihen das Fehlen, aber gewoehn dir an, es immer zu setzen.

2. Tabellenname falsch geschrieben

-- Falsch:
SELECT * FROM kunde;

-- Richtig:
SELECT * FROM kunden;

3. Komma vergessen zwischen Spalten

-- Falsch:
SELECT name preis FROM produkte;

-- Richtig:
SELECT name, preis FROM produkte;

Was kommt als Naechstes?

Im naechsten Tutorial lernst du SELECT im Detail kennen - mit allen Moeglichkeiten, die dir diese maechtige Anweisung bietet.

Zusammenfassung

  • SELECT … FROM ist die Grundstruktur jeder Abfrage
  • * waehlt alle Spalten, besser ist es einzelne Spalten anzugeben
  • AS gibt Spalten im Ergebnis einen neuen Namen (Alias)
  • Du kannst direkt in SQL rechnen (z.B. preis * 1.19)
  • Kommentare beginnen mit -- oder stehen in /* */
  • Jede Anweisung endet mit einem Semikolon

Uebungen

  1. Grundabfrage: Schreibe eine Abfrage, die alle Bestellungen anzeigt.
  2. Spaltenauswahl: Zeige nur den Namen und den Lagerbestand aller Produkte.
  3. Berechnungen: Zeige alle Produkte mit ihrem Preis und einem rabattierten Preis (20% Rabatt). Nutze Aliase.
  4. Kreativ: Erstelle eine Abfrage, die fuer jedes Produkt einen Satz ausgibt wie: “Das Produkt [Name] kostet [Preis] Euro.”
-- Loesung zu Uebung 1:
SELECT * FROM bestellungen;

-- Loesung zu Uebung 2:
SELECT name, lagerbestand FROM produkte;

-- Loesung zu Uebung 3:
SELECT
    name,
    preis AS originalpreis,
    preis * 0.8 AS rabattpreis
FROM produkte;

Pro-Tipp: Gewoehn dir von Anfang an an, SQL-Abfragen uebersichtlich zu formatieren. Schreibe jede Klausel (SELECT, FROM, WHERE) in eine neue Zeile und ruecke Spalten ein. Das macht deinen Code viel lesbarer, besonders bei komplexeren Abfragen.

Zurück zum SQL Kurs