ZPA-SQL-Syntax: DDL (CREATE/ALTER TABLE), DCL (GRANT/REVOKE), Multi-Table JOINs, DATEDIFF & ACID.
ZPA-Prüfungskatalog 2. Auflage Standard: Alle SQL-Befehle (DDL, DML, DCL, Joins, Unterabfragen und spezifische ZPA-Funktionen wie DATEDIFF) wurden aus AP1 entfernt und sind nun exklusiv in der AP2 verortet!
CREATE TABLE mitarbeiter (
mit_nr INTEGER PRIMARY KEY,
nachname VARCHAR(50) NOT NULL,
vorname VARCHAR(50) NOT NULL,
gehalt DECIMAL(10,2) CHECK (gehalt > 0),
eintrittsdatum DATE NOT NULL,
abt_nr INTEGER,
CONSTRAINT fk_abt FOREIGN KEY (abt_nr)
REFERENCES abteilung(abt_nr) ON DELETE RESTRICT
);
-- Tabellenstruktur nachträglich ändern
ALTER TABLE mitarbeiter ADD COLUMN email VARCHAR(100);
ALTER TABLE mitarbeiter MODIFY COLUMN nachname VARCHAR(80);
ALTER TABLE mitarbeiter DROP COLUMN email;
-- Benutzer anlegen & Rechte vergeben CREATE USER 'reporting'@'localhost' IDENTIFIED BY 'Start2025!Secure'; GRANT SELECT, INSERT ON unternehmen.* TO 'reporting'@'localhost' WITH GRANT OPTION; REVOKE INSERT ON unternehmen.* FROM 'reporting'@'localhost';
- JOINs: INNER JOIN (nur übereinstimmende Paare), LEFT JOIN (alle Zeilen der linken Tabelle, auch ohne Treffer rechts).
- Datumsdifferenz: DATEDIFF(end_datum, start_datum) berechnet Tage zwischen Daten.
- GROUP BY & HAVING: SELECT abt_nr, AVG(gehalt) FROM mitarbeiter GROUP BY abt_nr HAVING COUNT(*) >= 5;
- ACID: Atomicity (Alles oder Nichts), Consistency (Konsistenz), Isolation (Transaktionsisolierung), Durability (Dauerhaftigkeit).
Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem didaktischen Erwartungshorizont:
Schreiben Sie das syntaktisch korrekte SQL-Statement nach ANSI/ISO-Standard.
Formulieren Sie eine SQL-Abfrage, die den Kundennamen und die Gesamtsumme aller Bestellungen für jeden Kunden ausgibt, dessen Gesamtbestellwert 10.000 EUR überschreitet. Das Ergebnis soll absteigend nach der Summe sortiert sein.
Erläutern Sie den Unterschied im Abfrageergebnis zwischen INNER JOIN und LEFT OUTER JOIN bezüglich der Ergebniszeilen.
Nennen und erläutern Sie die vier ACID-Eigenschaften und beschreiben Sie, was passiert, wenn nach dem Abbuchen von Konto A das Datenbanksystem abstürzt.
Formulieren Sie zwei SQL-Abfragen, die alle Kundennamen ausgeben, die mindestens eine Bestellung getätigt haben: Einmal unter Verwendung einer Subquery mit IN und einmal mit EXISTS.
Erläutern Sie die Funktionsweise von SQL Window Functions gegenüber GROUP BY und erklären Sie die Syntax von ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...).
Formulieren Sie eine SQL-Abfrage nach ZPA-Standard, die für alle im laufenden Jahr geschlossenen Tickets die Ticket-ID und die Bearbeitungsdauer in Tagen berechnet (unter Verwendung von DATEDIFF) und nur Tickets anzeigt, deren Bearbeitung länger als 14 Tage gedauert hat.
Erläutern Sie die Aufgaben und mathematische Bedeutung der SQL-Aggregatfunktionen STDDEV(), VARIANCE() und CORR() und beschreiben Sie einen Anwendungsfall zur Erkennung von Lastanomalien.