Um neue Datensätze in eine Tabelle einer SQL-Datenbank zu schreiben gibt es die INSERT-Anweisung.

Formal gibt es hier zwei mögliche Insert-Anweisungen:

1. insert into TABELLENNAME (SPALTENNAME1, SPALTENNAME2, …) values (WERT1, WERT2, …);

2. insert into TABELLENNAME select SPALTENNAME1, SPALTENNAME2, …

Bei Punkt 1 werden die Spalten der Tabelle benannt, die gefüllt werden sollen. Dabei stehen die Spaltennamen in Klammern, genauso steht die Aufzählung der Werte für die Spalten in Klammern. Vor dem Aufzählen der Werte steht das Schlüsselwort values. Es müssen bei der Angabe der Spalten nur die Spalten genannt werden, die gefüllt werden sollen, die restlichen Spalten der Tabelle würden dann leer bleiben. Werden aber alle Felder gefüllt, so müssen die Spalten nicht angegeben werden und man kann direkt die Werte angeben. Jedoch müssen die Werte in der Reihenfolge genannt werden, wie die Spalten in der Tabelle vorkommen.

Bei Punkt 2 wird eine Tabelle aus den Daten einer anderen Tabelle befüllt. Dabei müssen die ausgewählten Spalten der beiden benannten Tabellen übereinstimmen, da es sonst zu Fehlern kommen kann.

Wir wollen nun die Tabelle ‚Personen‘ mit Hilfe von Punkt 1 befüllen.

Die Befehle sehen so aus:

insert into personen (id, name, vorname) values (‚1‘, ‚Mustermann‘, ‚Klaus‘);
insert into personen (id, name, vorname) values (‚2‘, ‚Musterfrau‘, ‚Elke‘);
insert into personen (id, name, vorname) values (‚3‘, ‚Musterkind‘, ‚Heinz‘);
insert into personen (id, name, vorname) values (‚4‘, ‚Musterkind‘, ‚Karl‘);

Da alle Spalten angegeben werden, können die Spaltennamen auch weggelassen werden. Der erste Befehl würde sich dann folgendermaßen ändern:

insert into personen values (‚1‘, ‚Mustermann‘, ‚Klaus‘);

ID Name Vorname
1 Mustermann Klaus
2 Musterfrau Elke
3 Musterkind Heinz
4 Musterkind Karl

Nun wollen wir diese Tabelle in einer Backup-Tabelle ‚Personen_Backup‘ sichern. Dazu nutzen wird die Insert-Anweisung, die unter Punkt 2 vorgestellt wurde.

insert into personen_backup select id, name, vorname from personen;

 Antworten

   
Impressum Suffusion theme by Sayontan Sinha