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.

Merksatz: SQL (Structured Query Language) ist die deklarative Standardsprache zur Definition, Manipulation und Abfrage relationaler Datenbanken.

Übersicht der SQL-Kategorien

Kategorie Abkürzung Zweck Beispiele
Data Definition LanguageDDLDefinieren der DatenbankstrukturCREATE, ALTER, DROP
Data Manipulation LanguageDMLManipulieren von Daten in TabellenINSERT, UPDATE, DELETE
Data Query LanguageDQLAbfragen von DatenSELECT
Transaction Control LanguageTCLSteuern 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.

  1. Schreibe einen DDL-Befehl, um diese Tabelle Schueler zu erstellen.
  2. Schreibe DML-Befehle, um drei Beispielschüler in die Tabelle einzufügen.
  3. Schreibe einen DML-Befehl, um den Namen eines Schülers zu aktualisieren.
  4. Schreibe einen DQL-Befehl, der alle Schüler der Klasse '10a' nach Namen aufsteigend sortiert zurückgibt.
  5. 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


Nächster Schritt

Wende dein SQL-Wissen nun in komplexeren Szenarien an und entwickle eigene Datenbanklösungen.

Weiter zu: Komplexaufgaben →
footer>

© 2026 TGE / Fortis-Akademie, Berufliches Gymnasium Sachsen, Impressum und Datenschutz