6.2.1 Dateneingabe in eine Tabelle – Einzeleinträge
Manchmal ist es erwünscht, nicht eine komplette Zeile in eine Tabelle einzufügen, sondern nur bestimmte Spalten. Dies erfordert eine Spezifikation nur dieser Spaltennamen direkt nach der Tabellenidentifizierung.
INSERT INTO tabellenName(Spalte_1, Spalte_3, ...) VALUES (Wert1, Wert2, ...);
Dabei sind die Spalten, die man einfügen will, beliebig wählbar. Eine Ausnahme bildet die
Primärschlüssel-Spalte. Diese muss für jede Zeile gefüllt werden, denn die Primärschlüsseldefinition
verlangt, dass dieses Feld nie leer sein darf!
Auch Spalten deren Werte nicht leer bleiben dürfen (als NOT NULL
definiert), müssen mit Werten gefüllt
werden, wobei dies aber auch mit Standardwerten (mit DEFAULT
definiert) erfolgen kann.
Ein einfaches Beispiel für unsere Datenbank wäre ein Eintrag, bei dem nur der Name eines neuen Mitarbeiters erfasst wird. Wie Sie sehen, können auch die Spalten in ihrer Reihenfolge vertauscht werden. Sie müssen dann natürlich darauf achten, dass auch die Reihenfolge der Werte in der Wertliste entsprechend geändert wird.
INSERT INTO tbl_mitarbeiter(personal_ID, vorname, name) VALUES ('49', 'Peter', 'Ebert')
Alternativ zum VALUES
-Statement können die einzufügenden Elemente
auch dem Ergebnis einer SELECT
-Anweisung entstammen, wenn es zum Beispiel um
die Übertragung von Daten geht.
Dabei kann auf die INSERT INTO
-Anweisung jede beliebige SELECT
-Anweisung
folgen. Vorraussetzung ist natürlich, dass es gemeinsame Spalten gibt, so dass überhaupt
eine Übertragung stattfinden kann.
INSERT INTO tabellenName(Spalte_1, Spalte_3, ...) SELECT Spalte_1, Spalte_3, ... ...
Beachten Sie, dass die Spaltenliste nach INSERT INTO
und die Wertliste
im VALUES
-Statement bzw. die Feldliste im SELECT
in Anzahl, Reihenfolge und Typ
übereinstimmen müssen! Die Übereinstimmung der Namen der Felder ist dabei jedoch nicht zwingend notwendig.