<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Data_Manipulation_Language</id>
	<title>Data Manipulation Language - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Data_Manipulation_Language"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Data_Manipulation_Language&amp;action=history"/>
	<updated>2026-05-19T13:53:02Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Data_Manipulation_Language&amp;diff=203479&amp;oldid=prev</id>
		<title>imported&gt;Lómelinde: :Kategorie:Wikipedia:Seite mit Syntaxhervorhebungsfehlern nicht mehr unterstützte Pflichtangabe lang=&quot;oracle8&quot; mysql? oder psql?</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Data_Manipulation_Language&amp;diff=203479&amp;oldid=prev"/>
		<updated>2023-07-11T07:41:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/index.php?title=Kategorie:Wikipedia:Seite_mit_Syntaxhervorhebungsfehlern&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Kategorie:Wikipedia:Seite mit Syntaxhervorhebungsfehlern (Seite nicht vorhanden)&quot;&gt;Kategorie:Wikipedia:Seite mit Syntaxhervorhebungsfehlern&lt;/a&gt; nicht mehr unterstützte Pflichtangabe lang=&amp;quot;oracle8&amp;quot; mysql? oder psql?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Die &amp;#039;&amp;#039;&amp;#039;Data Manipulation Language&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;DML&amp;#039;&amp;#039;&amp;#039;; {{deS|Datenbearbeitungssprache}}) ist der Teil einer [[Datenbanksprache]], die verwendet wird, um Daten zu schreiben, zu lesen, zu ändern und zu löschen. DML ist die Datenver- oder Datenbearbeitungssprache einer Datenbank und schließt die Formulierung von [[Abfragesprache|Abfragen]] ein.&lt;br /&gt;
&lt;br /&gt;
Für frühere und heutige Systeme sind zum Teil sehr verschiedene Ausprägungen der DML entworfen worden. Beispiele:&lt;br /&gt;
* In den historischen [[Information Management System|IMS]]-Datenbanken ist die eigenständige DML namens [[DL/I]] eine Sprache für andere Computer-Programme. Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mysql&amp;quot;&amp;gt;&lt;br /&gt;
CALL PLITDLI(FOUR, &amp;#039;GHU &amp;#039;, DB_PCB, IO_AREA, SSA1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* In [[SQL]] liegt sie, neben [[Data Definition Language|Data Definition]] (DDL) und [[Data Control Language]] (DCL), in Form englischer Befehlsklauseln vor. Beispiele:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DELETE FROM bestellungen WHERE bestellstatus IS NULL&lt;br /&gt;
SELECT postleitzahl, stadt FROM kunden ORDER BY postleitzahl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Während in den ersten zwanzig Jahren der Datenbanktechnik die DML hauptsächlich zur Programmierung verwendet wurde, wird heute auch Wert auf die direkte Verwendung durch Benutzer gelegt. So kann z.&amp;amp;nbsp;B. die SQL-DML in den meisten Systemen auch interaktiv als [[Kommandozeile|Kommandosprache]] verwendet werden. Auch ist heute in der Regel das Wissen über interne technische Speicherstrukturen nicht mehr notwendig, um entsprechende Verarbeitungsbefehle formulieren zu können. In diesem Fall spricht man von deskriptiven (beschreibenden) Sprachen.&lt;br /&gt;
&lt;br /&gt;
== Sonderstellung der Abfrage ==&lt;br /&gt;
Die Sprachelemente zur Datenabfrage (bei [[SQL]] sind das die Schlüsselwörter &amp;lt;code&amp;gt;[[Selektion (Informatik)|SELECT]]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[[Relationale Algebra#Join|JOIN]]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt; etc.) werden aufgrund ihrer Sonderstellung manchmal einer eigenen Kategorie &amp;#039;&amp;#039;Data Query Language&amp;#039;&amp;#039; (DQL, „Daten[[abfragesprache]]“), seltener auch &amp;#039;&amp;#039;Data Retrieval Language&amp;#039;&amp;#039; (DRL), zugeordnet. Diese Einteilungen sind jedoch unüblich und nicht standardisiert. Die Zuordnung zur Kategorie DML lässt sich damit erklären, dass die Daten bei einer Abfrage selten in ihrer ursprünglichen Form, sondern meist „manipuliert“ (gefiltert, [[Sortierung|sortiert]] etc.) ausgeliefert werden.&lt;br /&gt;
&lt;br /&gt;
== SQL ==&lt;br /&gt;
In der praktisch wichtigen [[SQL|Structured Query Language]] lautet die Syntax wie folgt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
   INSERT INTO Relation [( Attribut+ )] VALUES ( ( Konstante+ ) )+&lt;br /&gt;
   INSERT INTO Relation [( Attribut+ )] SFW-Block&lt;br /&gt;
   UPDATE Relation SET (Attribut=Ausdruck)+ [WHERE Where-Klausel]&lt;br /&gt;
   MERGE INTO Relation USING Quelle ON Join-Klausel&lt;br /&gt;
       WHEN MATCHED UPDATE SET (Attribut=Ausdruck)+&lt;br /&gt;
       WHEN NOT MATCHED [BY TARGET] INSERT (Attributliste) VALUES (Ausdruckliste)&lt;br /&gt;
       [WHEN NOT MATCHED BY SOURCE DELETE]&lt;br /&gt;
   DELETE FROM Relation [WHERE Where-Klausel]&lt;br /&gt;
   TRUNCATE Relation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit INSERT können explizit konstruierte Tupel oder die Ergebnisse eines&lt;br /&gt;
SFW-Blocks in eine Relation eingefügt werden. Dabei kann jeweils mehr&lt;br /&gt;
als eine Zeile verarbeitet werden.&lt;br /&gt;
* &amp;#039;&amp;#039;Ausdruck&amp;#039;&amp;#039; aus der&lt;br /&gt;
UPDATE-Anweisung kann insbesondere auch auf das zu manipulierende&lt;br /&gt;
Attribut Bezug nehmen wie zum Beispiel in&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
UPDATE Personal SET Gehalt=Gehalt*2 WHERE Abteilung=&amp;#039;EDV&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Wird bei DELETE die WHERE-Klausel weggelassen, werden alle Tupel gelöscht, aber nicht das Relationsschema.&lt;br /&gt;
Die TRUNCATE-Anweisung leert eine Tabelle vollständig und setzt im&lt;br /&gt;
Unterschied zu &amp;lt;code&amp;gt;DELETE FROM Table&amp;lt;/code&amp;gt; auch jegliche&lt;br /&gt;
Indizes (Die dem Index zugrundeliegende Datenstruktur wird komplett geleert)&lt;br /&gt;
und Auto-Increment-Werte auf die Standardwerte. Zu beachten&lt;br /&gt;
ist, dass &amp;lt;code&amp;gt;TRUNCATE&amp;lt;/code&amp;gt; bei einigen DBMS, wie zum&lt;br /&gt;
Beispiel MSSQL, keine Trigger auslöst.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
INSERT INTO Student (MatrNr, Name) VALUES (27123, &amp;#039;Meier&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Fügt eine Zeile mit den geg. Werten für die Spalten &amp;#039;&amp;#039;MatrNr&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Name&amp;#039;&amp;#039; in die Tabelle &amp;#039;&amp;#039;Student&amp;#039;&amp;#039; hinzu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
INSERT INTO Student (MatrNr, Name) VALUES (27124, &amp;#039;Schulz&amp;#039;), (27125, &amp;#039;Schmidt&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Fügt zwei Zeilen mit den angegebenen Werten für die Spalten &amp;#039;&amp;#039;MatrNr&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Name&amp;#039;&amp;#039; in die Tabelle &amp;#039;&amp;#039;Student&amp;#039;&amp;#039; hinzu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
INSERT INTO Student VALUES (27126, &amp;#039;Schmidt&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:&lt;br /&gt;
Beim INSERT-Statement kann die erste Klammer mit den Attribut-Namen&lt;br /&gt;
auch weggelassen und direkt mit values() die Werte eingefügt werden.&lt;br /&gt;
Allerdings müssen dann die Werte in der gleichen Reihenfolge wie in der&lt;br /&gt;
Tabellendefinition angegeben werden. Zusätzlich müssen Werte für alle&lt;br /&gt;
Spalten der Tabelle bereitgestellt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
INSERT INTO Student (MatrNr, Name) SELECT MatrNr, Name FROM Student_alt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Lädt alle Studenten aus der Tabelle &amp;#039;&amp;#039;Student_alt&amp;#039;&amp;#039; in die Tabelle &amp;#039;&amp;#039;Student&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
UPDATE Student SET Name = &amp;#039;Meier&amp;#039; WHERE MatrNr = 27124&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Ändert den Wert der Spalte Name in der Tabelle &amp;#039;&amp;#039;Student&amp;#039;&amp;#039; für eine bestimmte &amp;#039;&amp;#039;MatrNr&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DELETE FROM Student&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Löscht alle Zeilen aus der Tabelle &amp;#039;&amp;#039;Student&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DELETE FROM Student WHERE MatrNr = 27124&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Löscht die Zeile mit der MatrNr 27124 aus der Tabelle &amp;#039;&amp;#039;Student&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
TRUNCATE TABLE Student&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:&lt;br /&gt;
Leert die Tabelle &amp;#039;&amp;#039;Student&amp;#039;&amp;#039; und setzt den eventuell vorhandenen&lt;br /&gt;
Auto-Increment-Wert auf den definierten Standard (meistens 1).&lt;br /&gt;
&lt;br /&gt;
== Andere Sprachelemente der Datenbank ==&lt;br /&gt;
* [[Data Definition Language]]&lt;br /&gt;
* [[Data Control Language]]&lt;br /&gt;
* [[Transaction Control Language]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SQL]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Lómelinde</name></author>
	</entry>
</feed>