In einer Datenbank können Datensätze hinzugefügt, geändert und gelöscht werden. Dafür verwendet man die SQL-Befehle INSERT INTO, UPDATE und DELETE.
Diese Befehle gehören zur Data Manipulation Language (DML).
| kunden_id | name | stadt | alter |
|---|---|---|---|
| 1 | Anna Müller | Berlin | 28 |
| 2 | Max Schmidt | Leipzig | 35 |
| 3 | Lisa Weber | Dresden | 24 |
Mit INSERT INTO werden neue Datensätze in eine Tabelle eingefügt.
INSERT INTO kunden (name, stadt, alter)
VALUES ('Peter Fischer', 'Hamburg', 42);
| kunden_id | name | stadt | alter |
|---|---|---|---|
| 1 | Anna Müller | Berlin | 28 |
| 2 | Max Schmidt | Leipzig | 35 |
| 3 | Lisa Weber | Dresden | 24 |
| 4 | Peter Fischer | Hamburg | 42 |
Die kunden_id wird automatisch vergeben, wenn die Spalte AUTO_INCREMENT verwendet.
Mit einem INSERT INTO-Befehl können mehrere Datensätze gleichzeitig eingefügt werden.
INSERT INTO kunden (name, stadt, alter)
VALUES
('Laura Becker', 'München', 29),
('Thomas Wolf', 'Leipzig', 38),
('Sarah Hoffmann', 'Berlin', 31);
Jeder Datensatz steht in eigenen Klammern. Die Datensätze werden durch Kommas getrennt.
NULL bedeutet, dass kein Wert vorhanden ist. DEFAULT verwendet den festgelegten Standardwert einer Spalte.
INSERT INTO kunden (name, stadt, alter)
VALUES ('Julia Meier', 'Köln', NULL);
In diesem Beispiel ist das Alter nicht bekannt. Die Spalte alter muss dafür NULL-Werte erlauben.
CREATE TABLE newsletter (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(150) NOT NULL,
aktiv BOOLEAN DEFAULT TRUE
);
INSERT INTO newsletter (email)
VALUES ('beispiel@example.com');
Da kein Wert für aktiv angegeben wurde, verwendet MySQL den Standardwert TRUE.
Mit UPDATE werden vorhandene Datensätze in einer Tabelle verändert.
UPDATE kunden
SET stadt = 'Dresden'
WHERE kunden_id = 2;
| kunden_id | name | stadt |
|---|---|---|
| 1 | Anna Müller | Berlin |
| 2 | Max Schmidt | Dresden |
| 3 | Lisa Weber | Dresden |
Mit SET können mehrere Spalten gleichzeitig verändert werden.
UPDATE kunden
SET stadt = 'Hamburg',
alter = 36
WHERE kunden_id = 2;
Die Werte für stadt und alter werden beim ausgewählten Kunden geändert.
Mit UPDATE können auch Berechnungen durchgeführt werden.
UPDATE produkte
SET preis = preis * 1.10
WHERE produkt_id = 1;
Der Preis des Produkts mit der ID 1 wird um 10 Prozent erhöht.
| Alter Preis | Berechnung | Neuer Preis |
|---|---|---|
| 100,00 € | 100 × 1,10 | 110,00 € |
Mit DELETE FROM werden Datensätze aus einer Tabelle gelöscht.
DELETE FROM kunden
WHERE kunden_id = 3;
Dieser Befehl löscht den Datensatz mit der kunden_id 3. Andere Datensätze bleiben erhalten.
| kunden_id | name | stadt |
|---|---|---|
| 1 | Anna Müller | Berlin |
| 2 | Max Schmidt | Leipzig |
Mit WHERE können mehrere Datensätze ausgewählt und gelöscht werden.
DELETE FROM kunden
WHERE stadt = 'Berlin';
Dieser Befehl löscht alle Kunden, deren Stadt Berlin ist.
DELETE FROM kunden
WHERE alter < 18;
Alle Kunden unter 18 Jahren werden gelöscht.
Vor einer Änderung oder Löschung sollten die betroffenen Datensätze mit SELECT überprüft werden.
SELECT *
FROM kunden
WHERE stadt = 'Berlin';
UPDATE kunden
SET stadt = 'Potsdam'
WHERE stadt = 'Berlin';
So kann vor der Änderung kontrolliert werden, welche Datensätze betroffen sind.
| Befehl | Funktion | Beispiel |
|---|---|---|
| INSERT INTO | Neue Datensätze hinzufügen | Neuen Kunden speichern |
| UPDATE | Vorhandene Daten ändern | Adresse ändern |
| DELETE FROM | Datensätze löschen | Kunden löschen |
Für die folgenden Aufgaben wird die Tabelle kunden verwendet.
Fügen Sie einen neuen Kunden ein: Name: Michael Braun, Stadt: Leipzig, Alter: 40.
INSERT INTO kunden (name, stadt, alter)
VALUES ('Michael Braun', 'Leipzig', 40);
Ändern Sie die Stadt des Kunden mit der ID 1 in Hamburg.
UPDATE kunden
SET stadt = 'Hamburg'
WHERE kunden_id = 1;
Löschen Sie den Kunden mit der ID 2.
DELETE FROM kunden
WHERE kunden_id = 2;
Mit INSERT INTO werden neue Datensätze in eine Tabelle eingefügt. UPDATE verändert vorhandene Daten. DELETE FROM löscht Datensätze. Die WHERE-Bedingung ist besonders wichtig, damit nur die gewünschten Datensätze geändert oder gelöscht werden.