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 · SchwerJOINs & GROUP BYNeue Fragen rotieren
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(...)