Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Data Manipulation Language

Die Sprachelemente zur Datenabfrage (bei SQL sind das die Schlüsselwörter SELECT , JOIN , WHERE etc.) werden aufgrund ihrer Sonderstellung manchmal einer …

Inhalt6 Abschnitte
  1. 1. Grundidee
  2. 2. Verwendung und Eigenschaften
  3. 3. Abfragen
  4. 4. Wichtige SQL-Befehle
  5. 5. Typische SQL-Beispiele
  6. 6. Abgrenzung

Grundidee

Die Data Manipulation Language (DML), auf Deutsch Datenbearbeitungssprache, ist der Teil einer Datenbanksprache, mit dem Daten geschrieben, gelesen, geändert und gelöscht werden. Sie ist also die Sprache für die Datenverarbeitung oder Datenbearbeitung in einer Datenbank und umfasst auch die Formulierung von Abfragen.

DML kann je nach Datenbanksystem sehr unterschiedlich aussehen. In historischen IMS-Datenbanken gab es zum Beispiel die eigenständige DML DL/I, die als Sprache für andere Computerprogramme verwendet wurde. In SQL erscheint DML dagegen neben Data Definition Language (DDL) und Data Control Language (DCL) in Form englischer Befehlsklauseln wie DELETE oder SELECT.

Verwendung und Eigenschaften

In den ersten zwanzig Jahren der Datenbanktechnik wurde DML hauptsächlich zur Programmierung verwendet. Heute spielt auch die direkte Verwendung durch Benutzer eine wichtige Rolle. SQL-DML kann in den meisten Systemen interaktiv als Kommandosprache genutzt werden.

Ein wichtiger Unterschied zu älteren Arbeitsweisen ist, dass man heute in der Regel keine Kenntnisse über interne technische Speicherstrukturen braucht, um Verarbeitungsbefehle zu formulieren. Solche Sprachen nennt man deskriptive, also beschreibende Sprachen: Man beschreibt, welches Ergebnis oder welche Verarbeitung gewünscht ist, ohne die genaue interne Ausführung festzulegen.

Abfragen

Sprachelemente zur Datenabfrage nehmen eine Sonderstellung ein. In SQL gehören dazu Schlüsselwörter wie SELECT, JOIN und WHERE. Manchmal werden sie einer eigenen Kategorie zugeordnet: Data Query Language (DQL, „Datenabfragesprache“) oder seltener Data Retrieval Language (DRL).

Diese Einteilungen sind aber unüblich und nicht standardisiert. Die Zuordnung zur DML lässt sich damit erklären, dass Daten bei einer Abfrage meist nicht unverändert ausgegeben werden. Sie werden häufig gefiltert, sortiert oder auf andere Weise „manipuliert“ ausgeliefert.

Wichtige SQL-Befehle

In der praktisch wichtigen Structured Query Language gehören unter anderem INSERT, UPDATE, MERGE, DELETE und TRUNCATE zur DML.

Mit INSERT werden Tupel, also Datenzeilen, in eine Relation beziehungsweise Tabelle eingefügt. Dabei können ausdrücklich angegebene Werte eingefügt werden, zum Beispiel mit VALUES, oder Ergebnisse eines SFW-Blocks. Es kann jeweils mehr als eine Zeile verarbeitet werden.

Mit UPDATE werden vorhandene Werte geändert. Ein Ausdruck in einer UPDATE-Anweisung kann auch auf das zu manipulierende Attribut selbst Bezug nehmen, etwa: UPDATE Personal SET Gehalt=Gehalt*2 WHERE Abteilung='EDV'.

DELETE FROM Relation [WHERE Where-Klausel] löscht Tupel aus einer Relation. Wird bei DELETE die WHERE-Klausel weggelassen, werden alle Tupel gelöscht, aber nicht das Relationsschema.

TRUNCATE leert eine Tabelle vollständig. Im Unterschied zu DELETE FROM Table setzt TRUNCATE auch Indizes und Auto-Increment-Werte auf Standardwerte zurück. Bei einigen DBMS, zum Beispiel MSSQL, löst TRUNCATE keine Trigger aus.

Typische SQL-Beispiele

INSERT INTO Student (MatrNr, Name) VALUES (27123, 'Meier') fügt eine Zeile mit den angegebenen Werten für MatrNr und Name in die Tabelle Student ein.

INSERT INTO Student (MatrNr, Name) VALUES (27124, 'Schulz'), (27125, 'Schmidt') fügt zwei Zeilen ein. Bei INSERT INTO Student VALUES (27126, 'Schmidt') werden die Attributnamen weggelassen; dann müssen die Werte in der Reihenfolge der Tabellendefinition angegeben werden, und es müssen Werte für alle Spalten bereitgestellt werden.

INSERT INTO Student (MatrNr, Name) SELECT MatrNr, Name FROM Student_alt lädt alle Studenten aus Student_alt in die Tabelle Student. UPDATE Student SET Name = 'Meier' WHERE MatrNr = 27124 ändert den Namen für eine bestimmte MatrNr. DELETE FROM Student löscht alle Zeilen aus Student, während DELETE FROM Student WHERE MatrNr = 27124 nur die passende Zeile löscht. TRUNCATE TABLE Student leert die Tabelle Student und setzt einen eventuell vorhandenen Auto-Increment-Wert auf den definierten Standard, meistens 1.

Abgrenzung

Neben der Data Manipulation Language nennt der Artikel weitere Sprachelemente einer Datenbank: Data Definition Language, Data Control Language und Transaction Control Language. Die DML ist dabei der Bereich für das Bearbeiten und Abfragen von Daten, während diese anderen Kategorien andere Aufgaben innerhalb einer Datenbanksprache übernehmen.

Lernvideos zu Data Manipulation Language

Weiterlesen