2.1 Daten einfügen

Mit der INSERT INTO-Anweisung können neue Datensätze in eine vorhandene Tabelle eingefügt werden.

Beispiel

Die Daten zweier Kunden sollen erfasst werden. Dazu wird für jeden Kunden ein Datensatz (Zeile) mit den entsprechenden Daten in die Tabelle Kunden eingefügt.

SQL
INSERT INTO Kunde(ID, Vorname, Nachname)
VALUES (1, "Max", "Maier"),
       (2, "Fritz", "Haug"),
       (3, "Eva", "Maier");
Abb. 2-1: Einfügen von Datensätzen in die Tabelle Kunde

Tabelle Kunde

ID Vorname Nachname
1 Max Maier
2 Fritz Haug
3 Eva Maier
Abb. 2-2: Tabelle Kunde

Wenn die Anzahl und die Reihenfolge der übergebenen Werte der Anzahl und der Reihenfolge der betroffenen Spalten entspricht dann kann auf die Angabe der Spaltennamen verzichtet werden.

SQL
INSERT INTO Kunde
VALUES (4, "Anja", "Sommer");
Abb. 2-3: Einfügen von Datensätzen in die Tabelle Kunde

Tabelle Kunde

ID Vorname Nachname
1 Max Maier
2 Fritz Haug
3 Eva Maier
4 Anja Sommer
Abb. 2-4: Tabelle Kunde
SQL
INSERT INTO tabelle[(spalte [, ...])]
VALUES {(wert [, ...])} [, ...];
Abb. 2-5: SQL Syntax – INSERT INTO
Merke: Einfügen von Datensätzen (Zeilen) in eine Tabelle
Aufgabe

Aufgabe 2-1: Fahrradvermietung

Fügen Sie die folgenden Datensätze in die Datenbank Fahrradvermietung ein. Worauf müssen Sie achten, damit das DBMS keine Fehlermeldungen wegen Verletzung der referenziellen Integrität zurückgibt?

  • Tabelle Kunde

    ID Vorname Nachname
    1 Max Maier
    2 Fritz Haug
    3 Eva Maier
    4 Anja Sommer
  • Tabelle Mietvertrag

    ID Abschlussdatum Mietbeginn Mietdauer ↑Kunde_ID
    1 2015-08-11 2015-08-12 3 1
    2 2015-08-13 2015-08-15 5 2
  • Tabelle Fahrrad

    ID Kennung ↑Fahrradtyp_ID
    1 Cross#7 1
    2 Mark#2 2
  • Tabelle Fahrradtyp

    ID Bezeichnung
    1 Mountainbike
    2 Trekkingrad
    3 Rennrad
    4 E-Bike
  • Tabelle Mietvertrag_vermietet_Fahrrad

    Mietvertrag_ID Fahrrad_ID
    1 1
    1 2
    2 2
Abb. 2-6: Datenbanktabellen der Datenbank Fahrradvermietung.
Lösung
Lösung

Um die referenzielle Integrität der Datenbank sicherzustellen, können Datensätze, die einen Fremdschlüssel enthalten, nur eingefügt werden, wenn der Datensatz, auf den der Fremdschlüssel verweist, bereits existiert.

SQL
INSERT INTO Fahrradtyp(ID, Bezeichnung)
VALUES (1, "Mountainbike"),
       (2, "Trekkingrad"),
       (3, "Rennrad"),
       (4, "E-Bike");
Abb. 2-7: Einfügen von Datensätzen in die Tabelle Fahrradtyp
SQL
INSERT INTO Fahrrad(ID, Kennung, Fahrradtyp_ID)
VALUES (1, "Cross#7", 1),
       (2, "Mark#2", 2);
Abb. 2-8: Einfügen von Datensätzen in die Tabelle Fahrrad
SQL
INSERT INTO Mietvertrag(ID, Abschlussdatum, Mietbeginn, Mietdauer, Kunde_ID)
VALUES (1, "2015-08-11", "2015-08-12", 3, 1),
       (2, "2015-08-13", "2015-08-15", 5, 2);
Abb. 2-9: Einfügen von Datensätzen in die Tabelle Mietvertrag
SQL
INSERT INTO Mietvertrag_vermietet_Fahrrad(Mietvertrag_ID, Fahrrad_ID)
VALUES (1, 1),
       (1, 2),
       (2, 2);
Abb. 2-10: Einfügen von Datensätzen in die Tabelle Mietvertrag_vermietet_Fahrrad