- 1 Section
- 10 Lessons
- unbegrenzt
- SQL Grundlagen10
- 1.1SQL-Grundstruktur: DDL, DML, DQL, DCL
- 1.2CREATE TABLE, Datentypen, Constraints
- 1.3INSERT, UPDATE, DELETE
- 1.4SELECT: WHERE, ORDER BY, LIMIT
- 1.5Aggregatfunktionen: COUNT, SUM, AVG
- 1.6GROUP BY und HAVING
- 1.7INNER JOIN und LEFT JOIN
- 1.8Datenbanktypen im Überblick
- 1.9MySQL / MariaDB in der Praxis
- 1.10SQL-Grundlagenaufgaben
SQL-Grundlagenaufgaben
Zehn IHK-Aufgaben zum gesamten Stoff dieses Kurses: SQL-Familien, CREATE TABLE, DML, SELECT, Aggregate, GROUP BY, JOINs und MySQL-Praxis. Mix aus Multiple-Choice, Statement-Bauen per Klick, Zuordnung und einer freien Antwort. Live-Auswertung in der Leiste oben – am Ende eine Note. Viel Erfolg!
SQL-Sublanguages
SELECT-Statement bauen
SELECT name FROM kunde WHERE stadt = 'Köln' ORDER BY name ASC LIMIT 5;Die feste Reihenfolge der Klauseln ist SELECT → FROM → WHERE → ORDER BY → LIMIT. Diese Reihenfolge ist zwingend, abweichende Reihenfolge ist Syntaxfehler.
NULL-Falle
WHERE email = NULL trifft nie zu, weil NULL „unbekannt" bedeutet und Vergleiche mit NULL nicht TRUE werden können. Korrekt ist IS NULL bzw. IS NOT NULL.
COUNT-Varianten
| id | name | stadt | |
|---|---|---|---|
| 1 | Müller | Köln | m@x.de |
| 2 | Meier | Köln | NULL |
| 3 | Schulz | Berlin | s@x.de |
| 4 | Müller | Köln | NULL |
| 5 | Weber | Berlin | w@x.de |
SELECT COUNT(DISTINCT stadt) FROM kunde;?
COUNT(*) wäre 5, COUNT(email) wäre 3 (NULLs zählen nicht). Eine sehr häufige Verwechslung in der Praxis.
Datentypen zuordnen
DECIMAL (nie FLOAT, sonst Rundungsfehler). Texte variabler Länge → VARCHAR. Datum → DATE. Ja/Nein → BOOLEAN (oder TINYINT(1)). PLZ in Deutschland hat immer 5 Zeichen → CHAR(5).
WHERE oder HAVING?
JOIN-Typ wählen
SQL-Ergebnis vorhersagen
produkt:
| id | name | preis |
|---|---|---|
| 1 | Buch | 15.00 |
| 2 | Stift | 2.50 |
| 3 | Heft | 3.50 |
| 4 | Mappe | 8.00 |
SELECT name FROM produkt WHERE preis BETWEEN 3 AND 10 ORDER BY preis DESC; ?
BETWEEN 3 AND 10 ist inklusiv → Heft (3.50) und Mappe (8.00). Buch (15) und Stift (2.50) liegen außerhalb. ORDER BY preis DESC = absteigend → Mappe (8.00) zuerst, dann Heft (3.50).
MySQL-Spezialität
id INT AUTO_INCREMENT PRIMARY KEY. Was bedeutet AUTO_INCREMENT?
AUTO_INCREMENT (MySQL-spezifisch, in PostgreSQL: SERIAL, in SQL Server: IDENTITY) zählt automatisch hoch. Praktisch für technische PKs, wenn kein natürlicher Schlüssel vorhanden ist. Wert wird vom DBMS vergeben – die Anwendung muss ihn nicht selbst kennen.
Modellierungsaufgabe
bestellung anzulegen. Sie soll: einen technischen Primary Key haben, einen Fremdschlüssel auf Kunde verweisen, ein Pflichtfeld für das Datum haben und einen Default-Wert für Status („offen"). Schreibe ein CREATE-TABLE-Statement.
Das System prüft, ob du die wichtigsten Begriffe verwendet hast:
CREATE TABLE bestellung (
bestell_nr INT AUTO_INCREMENT PRIMARY KEY,
kunden_id INT NOT NULL,
datum DATE NOT NULL,
status VARCHAR(20) DEFAULT 'offen',
FOREIGN KEY (kunden_id) REFERENCES kunde(id)
);
📊 Auswertung
Verwandte Lektionen für die Wiederholung: L01 SQL-Grundstruktur · L04 SELECT · L06 GROUP BY · L07 JOINs
Nächste Kurse: Weiter geht es mit SQL Fortgeschritten (K35b) – Indizes, Subqueries, JOINs vertieft, Window Functions, CTEs. Danach Datenbankintegrität & Transaktionen (K36) und NoSQL (K37).
Verwandte Lektionen: SQL-Grundstruktur · JOINs · MySQL Praxis · und mehrWeitere relevante LektionenCREATE TABLEINSERT, UPDATE, DELETESELECTAggregatfunktionenGROUP BY und HAVINGDatenbanktypenSQL-Injection
