DDL und DML: SQL-Befehle im Überblick
Kurzantwort
SQL-Befehle werden in Gruppen eingeteilt. DDL (Data Definition Language) verändert die Struktur der Datenbank – CREATE, ALTER, DROP für Tabellen. DML (Data Manipulation Language) verändert die Daten in den Tabellen – INSERT, UPDATE, DELETE und das lesende SELECT. Wer die Einteilung kennt, versteht sofort, ob ein Befehl das Schema oder die Inhalte betrifft.
Teil des Lernpfads Datenbanken und SQL · Schritt 6 von 9
Zuletzt aktualisiert am
CREATE TABLE, INSERT, DROP – SQL wirkt am Anfang wie ein bunter Haufen Befehle. Dahinter steckt aber eine klare Ordnung: Manche Befehle bauen die Struktur der Datenbank, andere arbeiten mit den Daten darin. Diese Unterscheidung ist der Schlüssel.
Die zwei wichtigsten Sprachfamilien
DDL – die Struktur
DDL-Befehle legen an, ändern und löschen Datenbankobjekte wie Tabellen:
CREATE TABLE azubis (
id INT PRIMARY KEY,
name VARCHAR(80),
lehrjahr INT
);
ALTER TABLE azubis ADD beruf VARCHAR(10);
DROP TABLE azubis;| Befehl | Wirkung |
|---|---|
CREATE | Objekt (z. B. Tabelle) anlegen |
ALTER | Struktur ändern (Spalte hinzufügen/ändern) |
DROP | Objekt komplett löschen |
TRUNCATE | alle Zeilen einer Tabelle leeren (Struktur bleibt) |
DML – die Daten
DML-Befehle arbeiten mit den Zeilen in einer bestehenden Tabelle:
INSERT INTO azubis (id, name, lehrjahr) VALUES (1, 'Aylin', 2);
UPDATE azubis SET lehrjahr = 3 WHERE id = 1;
DELETE FROM azubis WHERE id = 1;Auch das lesende SELECT zählt zur DML (manchmal als eigene „DQL" geführt).
Alle SQL-Sprachfamilien im Überblick
| Gruppe | Name | Aufgabe | Typische Befehle |
|---|---|---|---|
| DDL | Data Definition Language | Struktur anlegen, ändern, löschen | CREATE, ALTER, DROP, TRUNCATE |
| DML | Data Manipulation Language | Daten einfügen, ändern, löschen | INSERT, UPDATE, DELETE |
| DQL | Data Query Language | Daten abfragen | SELECT |
| DCL | Data Control Language | Zugriffsrechte vergeben | GRANT, REVOKE |
| TCL | Transaction Control Language | Transaktionen steuern | COMMIT, ROLLBACK |
Die Einteilung ist nicht in jedem Lehrbuch gleich: Manche ordnen SELECT der DML zu, andere führen es als eigene Gruppe DQL. Auch TRUNCATE wird je nach Quelle der DDL oder der DML zugerechnet. Wichtig ist, dass du die Grundidee kennst: Struktur (DDL) gegen Daten (DML).
Warum die Einteilung nützt
Selbstkontrolle
Selbstkontrolle
Zu welcher SQL-Sprachfamilie gehört der Befehl INSERT?
Häufige Fragen
Was ist der Unterschied zwischen DELETE und TRUNCATE?
DELETE ist ein DML-Befehl und löscht Zeilen, die einer Bedingung entsprechen; ohne WHERE alle. TRUNCATE ist ein DDL-Befehl und leert die gesamte Tabelle in einem Rutsch, meist schneller und ohne einzelne Zeilenprotokollierung. Die Tabellenstruktur bleibt in beiden Fällen erhalten – gelöscht wird nur der Inhalt.
Warum ist DROP so gefährlich?
DROP entfernt das Objekt selbst, bei DROP TABLE also die komplette Tabelle mitsamt Struktur und Daten. Das lässt sich in der Regel nicht per ROLLBACK rückgängig machen. Deshalb setzt man DROP nur bewusst und mit Vorsicht ein, idealerweise nach einer Sicherung.
Gehört SELECT zu DML?
Häufig ja – SELECT liest Daten und wird oft der DML zugeordnet. Manche Lehrbücher führen es als eigene Kategorie DQL (Data Query Language), weil es Daten nur abfragt und nicht verändert. Für die Praxis ist entscheidend: SELECT ändert nie etwas, es liest ausschließlich.
Welche DML-Befehle gibt es?
Die klassischen DML-Befehle sind INSERT zum Einfügen, UPDATE zum Ändern und DELETE zum Löschen von Datenzeilen. Häufig wird auch SELECT zur DML gezählt, andere Quellen führen es getrennt als DQL.
Was sind DCL und TCL?
DCL (Data Control Language) regelt Zugriffsrechte mit GRANT und REVOKE. TCL (Transaction Control Language) steuert Transaktionen mit COMMIT und ROLLBACK. Beide sind für Fortgeschrittene relevant; für die Grundlagen genügt die sichere Unterscheidung von DDL und DML.
Weiterlesen: Normalisierung: Datenbanken ohne Redundanz · ER-Modell erklärt: Entity-Relationship-Modell · SQL-JOINs erklärt: INNER JOIN und LEFT JOIN
Das Wichtigste in Kürze
- DDL verändert die Struktur:
CREATE,ALTER,DROP,TRUNCATE. - DML verändert die Daten:
INSERT,UPDATE,DELETE(und lesendSELECT). - DELETE (Zeilen) ≠ TRUNCATE (ganze Tabelle) ≠ DROP (Tabelle selbst).
UPDATE/DELETEohne WHERE trifft alle Zeilen – Vorsicht.- Ergänzend: DCL (Rechte) und TCL (Transaktionen).