Datenbank | SQL | Modellierung

SQL-Übungen mit rotierenden Fragen

Auch die SQL-Seite arbeitet jetzt mit einem größeren Fragenpool. Du kannst zwischen Leicht, Mittel und Schwer wählen und dir jederzeit andere Aufgaben einblenden lassen.

Leicht · Mittel · Schwer JOINs & GROUP BY Neue Fragen rotieren
Aufgabenpool 9
Themen 9
Erledigt 0
DB-Spickzettel

DDL definiert Strukturen, DML bearbeitet Daten. JOIN verbindet Tabellen, GROUP BY fasst Datensätze zusammen.

So arbeitest du mit der Seite

Schwierigkeit filtern

Suche dir leichte Grundlagen oder direkt schwere Aufgaben mit JOIN, Unterabfragen und Modellierung aus.

Andere Fragen laden

Mit einem Klick werden andere Aufgaben aus dem Pool angezeigt.

Eigene SQL-Statements üben

Nutze das Notizfeld, bevor du deine Lösung mit der Musterlösung vergleichst.

Schwerpunkte dieser Einheit

DDL INSERT SELECT JOIN GROUP BY UPDATE DELETE Schachtelung Modellierung

Pro Rotation werden bis zu vier Aufgaben angezeigt, damit du schneller zwischen verschiedenen SQL-Typen wechseln kannst.

Übungsbereich

Wähle eine Schwierigkeit und rotiere die Aufgaben direkt auf der Seite.

0 sichtbar
Leicht

Tabelle Kunde anlegen

DDL

Erstelle eine Tabelle kunde in der Datenbank buchhaltung. Die Tabelle soll die Felder kdnr, name und plz enthalten.

Hinweis

Orientiere dich an create table, int und char(5).

create table buchhaltung.kunde (
    -- kdnr als ganze Zahl
    -- name als Text
    -- plz als Text mit 5 Stellen
);
Leicht

Datensätze einfügen

INSERT

Füge zwei Kunden in die Tabelle buchhaltung.kunde ein: Paul aus Hamburg und Doaa aus Bremen.

Hinweis

Textwerte stehen in einfachen Anführungszeichen.

insert into buchhaltung.kunde values
    (...),
    (...);
Leicht

Kühe mit hoher Milchleistung

SELECT

Zeige alle Datensätze aus hof.kuh, deren Milchleistung größer als 19 ist.

Hinweis

Nutze eine WHERE-Bedingung mit > 19.

select *
from hof.kuh
where ...;
Mittel

Kunden und Bestellungen verbinden

JOIN

Zeige kundenname, artikelnr, datum und menge aus den Tabellen kunde und bestellung. Nutze dazu die passende Join-Bedingung.

Hinweis

Verbinde Primärschlüssel und Fremdschlüssel über kundennr.

select kundenname, artikelnr, datum, menge
from   tischler.kunde, tischler.bestellung
where  -- hier fehlt die Join-Bedingung
;
Mittel

Bestellungen mit Artikeldaten

Mehrfach-JOIN

Zeige kundenname, datum, menge, bezeichnung und lagerort aus kunde, bestellung und artikel.

Hinweis

Du brauchst hier zwei Join-Bedingungen.

select kundenname, datum, menge, bezeichnung, lagerort
from   tischler.kunde, tischler.bestellung, tischler.artikel
where  ...
       and
       ...;
Mittel

Durchschnittsumsatz gruppieren

GROUP BY

Berechne für jede Kombination aus plz und geschlecht den durchschnittlichen Umsatz. Verwende den Alias kaufkraft.

Hinweis

Für Mittelwerte nutzt du avg(...).

select   plz, geschlecht, ...
from     vertrieb.kunde
group by ...;
Schwer

Rechnungen ändern und löschen

UPDATE & DELETE

Setze den Betrag der Rechnung 5555 auf 100 und lösche anschließend alle Rechnungen mit einem Betrag ab 600.

Hinweis

Nutze zuerst UPDATE, danach DELETE.

-- 1. Betrag ändern

-- 2. Hohe Rechnungen löschen
Schwer

Kunden mit Rechnung per Unterabfrage

Schachtelung

Ermittle alle Kundennamen, die mindestens eine Rechnung bekommen haben, mit einer Unterabfrage.

Hinweis

Die Unterabfrage liefert passende kdnr-Werte aus rechnung.

select name
from buchhaltung.kunde
where kdnr in (
    -- hier fehlt die Unterabfrage
);
Schwer

Modell aus Bestellungen ableiten

Modellierung

Aus einer flachen Bestellliste sollen saubere Tabellen entstehen. Überlege, welche Tabellen und Schlüssel du für Kunde, Artikel und Bestellung brauchst.

Hinweis

Trenne Stammdaten von Bewegungsdaten und arbeite mit Fremdschlüsseln.

-- Notiere dein relationales Modell
-- kunde(...)
-- artikel(...)
-- bestellung(...)