SQL: Data Definition, Manipulation, Query & Transaction Control
Was du heute lernst:
- Die vier Hauptkategorien von SQL (DDL, DML, DQL, TCL) definieren und abgrenzen.
- Grundlegende SQL-Befehle (CREATE, INSERT, SELECT, UPDATE, DELETE, COMMIT, ROLLBACK) anwenden.
- Die Bedeutung von Selektion, Projektion, JOINs und Anomalien im Datenbankkontext verstehen.
SQL: Die Sprache der Datenbanken
SQL (Structured Query Language) ist die Standardsprache für die Verwaltung und Abfrage relationaler Datenbanken. Sie gliedert sich in verschiedene Unterkategorien, die unterschiedliche Aufgabenbereiche abdecken.
Übersicht der SQL-Kategorien
| Kategorie | Abkürzung | Zweck | Beispiele |
|---|---|---|---|
| Data Definition Language | DDL | Definieren der Datenbankstruktur | CREATE, ALTER, DROP |
| Data Manipulation Language | DML | Manipulieren von Daten in Tabellen | INSERT, UPDATE, DELETE |
| Data Query Language | DQL | Abfragen von Daten | SELECT |
| Transaction Control Language | TCL | Steuern von Transaktionen (ACID) | COMMIT, ROLLBACK |
Data Definition Language (DDL)
DDL-Befehle definieren die Struktur von Datenbanken, inklusive Erstellung, Änderung und Löschung von Tabellen und Objekten.
Beispiele für DDL-Befehle:
- CREATE: Erstellt neue Datenbankobjekte (Tabellen, Indizes, Views).
- ALTER: Ändert die Struktur eines Objekts.
- DROP: Löscht ein Datenbankobjekt.
Beispiele in SQL:
/* Ohne Regeln für Parameter */
CREATE TABLE monate(id INT, name VARCHAR(10), tag INT);
/* Mit Regeln für Parameter */
CREATE TABLE monate (
"id" INTEGER NOT NULL UNIQUE,
"name" varchar(10) NOT NULL,
"tag" INTEGER NOT NULL,
"tage_id_f" INTEGER,
PRIMARY KEY("id" AUTOINCREMENT),
FOREIGN KEY("tage_id_f") REFERENCES "tage"("id")
);
Data Manipulation Language (DML)
DML-Befehle manipulieren Daten in der Datenbank (Einfügen, Aktualisieren, Löschen).
Einfüge- und Löschanomalie:
Eine **Einfüge-Anomalie** tritt auf, wenn zum Einfügen von Daten nicht-relevante Informationen mit eingegeben werden müssen. Eine **Lösch-Anomalie** tritt auf, wenn das Löschen eines Datensatzes zum Verlust wichtiger, anderer Daten führt. Dies deutet oft auf ein unzureichend normalisiertes Modell hin.
Beispiele für DML-Befehle:
- INSERT: Fügt neue Datensätze ein.
- UPDATE: Aktualisiert bestehende Datensätze.
- DELETE: Löscht Datensätze.
Beispiele in SQL:
/* Hinzufügen eines neuen Attributs (DDL-Befehl) */
ALTER TABLE monate ADD tage_id_f INT;
/* INSERT mit Parametern */
INSERT INTO monate(id, name, tag) VALUES(1, 'Januar', 15);
/* UPDATE an bestimmter Stelle */
UPDATE monate SET tage_id_f = 2 WHERE id = 7;
/* DELETE nach Kondition */
DELETE FROM "monate" WHERE monate.id = 1;
Data Query Language (DQL)
DQL-Befehle fragen Daten aus der Datenbank ab (häufigster Befehl: SELECT).
Selektion und Projektion:
**Selektion** filtert **Zeilen** (WHERE-Klausel), während **Projektion** bestimmte **Spalten** auswählt.
Beispiele für DQL-Befehle:
- SELECT: Ruft Daten ab.
- WHERE: Filtert Datensätze.
- GROUP BY: Gruppiert Datensätze mit identischen Werten.
- ORDER BY: Sortiert die Ergebnismenge.
- JOINs: Kombiniert Zeilen aus mehreren Tabellen.
Beispiele in SQL:
/* Abfrage aller Attribute mit Sortierung */
SELECT name FROM monate ORDER BY tag DESC;
/* WHERE als Auslesekriterium mit Verkettung */
SELECT * FROM monate WHERE id > 5 AND tag >= 15 ORDER BY tag ASC;
/* IN, BETWEEN, LIKE */
SELECT * FROM monate WHERE name IN('Januar', 'Februar');
SELECT * FROM monate WHERE tag BETWEEN 10 AND 20;
SELECT * FROM monate WHERE name LIKE '%er';
/* Funktionen (Berechnungen) */
SELECT COUNT(id) AS AnzahlMonate, AVG(tag) AS Durchschnittstag FROM monate;
/* JOIN */
SELECT Kunden.Name, Bestellungen.BestellID FROM Kunden INNER JOIN Bestellungen ON Kunden.ID = Bestellungen.KundenID;
/* GROUP BY in Verbindung mit COUNT */
SELECT sport.bezeichnung, COUNT(sport.bezeichnung) FROM "sport"
INNER JOIN "training" ON sport.sport_id = training.sport_id_f
GROUP BY sport.sport_id;
Transaction Control Language (TCL)
TCL-Befehle verwalten Transaktionen (logische Arbeitseinheiten). Sie sichern ACID-Eigenschaften (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit).
Beispiele für TCL-Befehle:
- COMMIT: Speichert Änderungen dauerhaft.
- ROLLBACK: Macht Änderungen einer Transaktion rückgängig.
- SAVEPOINT: Setzt einen Rollback-Punkt innerhalb einer Transaktion.
Beispiele in SQL (GRANT/REVOKE):
/* GRANT - Rechte erteilen */
GRANT SELECT ON employees TO user1;
/* REVOKE - Rechte entziehen */
REVOKE SELECT ON employees FROM user1;
Übungsaufgabe: SQL-Befehle anwenden
Aufgabenstellung: Stell dir vor, du arbeitest mit einer Datenbank, die eine Tabelle Schueler mit den Spalten SchuelerID (INTEGER, Primärschlüssel), Name (VARCHAR), Klasse (VARCHAR) und Geburtsdatum (DATE) enthält.
- Schreibe einen DDL-Befehl, um diese Tabelle
Schuelerzu erstellen. - Schreibe DML-Befehle, um drei Beispielschüler in die Tabelle einzufügen.
- Schreibe einen DML-Befehl, um den Namen eines Schülers zu aktualisieren.
- Schreibe einen DQL-Befehl, der alle Schüler der Klasse '10a' nach Namen aufsteigend sortiert zurückgibt.
- Schreibe einen DML-Befehl, um einen der hinzugefügten Schüler zu löschen.
Hinweise zur Lösung: Achte auf die korrekte SQL-Syntax und die Datentypen.
Schwierigkeitsgrad: mittel | Bearbeitungszeit: 30 Minuten
© 2026 TGE / Fortis-Akademie, Berufliches Gymnasium Sachsen, Impressum und Datenschutz