| Home - SQL Befehle - Datenmanipulation | www.sqldocu.com | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| zurück | vor | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bevor du Informationen mit Hilfe eines
RDBMS
(MySQL, Oracle, Informix...) abspeichern
kannst, muss zuvor eine Datenbank (DB) mit einer oder mit mehreren entsprechenden Tabelle(n)
angelegt worden sein.
Folgende Abschnitte solltest du bereits gelesen haben:
Mit dem Befehl INSERT INTO werden Daten zeilenweise in Tabellen eingefügt. Ein INSERT Befehl bezieht sich immer nur auf eine Tabellen. Will man 2 Tabellen befüllen sind 2 getrennt Abfragen nötig. Der INSERT Befehl wird sofort ausgeführt. Manche RDBMS bieten die Möglichkeit mit SET AUTOCOMMIT OFF Anweisungen temporär zu speichern, und somit später rückgängig zu machen (siehe COMMIT/ROLLBACK).
Syntax vollständig
Ausdruck
Hinweis:
Der oben gezeigte Syntax ist konform zum ANSI Standard. Bis auf die Klausel
BEFORE|AFTER ELEMENT WHERE-KLAUSEL wird er von nahzu jedem RDBMS unterstützt. Mit der Klausel (SpaltenName1 [,SpaltenName2] [,..]) werden die SpaltenNamen angegeben, die eingefügt werden sollen. Diese Option kann weggelassen werden. Wir empfehlen, die SpaltenNamen immer anzugeben. Wird diese Option weggelassen, muss in der Klammer hinter VALUES für jede Spalte ein Wert angegeben werden. Wird später von der Tabelle ein Spale entfernt bzw. dazugefügt, funktioniert der INSERT Befehl ohne Klausel in der die Spalten angegeben werden, nicht mehr. Umgekehrt, wurden die Spalten die durch die INSERT Anweisung betroffen sind angegeben, funktioniert die Anweisung weiterhin. Beispiele:
INSERT INTO meineTabelle (Spalte1,Spalte3) VALUES (4,´James Kirk´)
INSERT INTO meineTabelle (Spalte1,Spalte3) VALUES (3,DEFAULT) INSERT INTO meineTabelle (Spalte1,Spalte3) VALUES DEFAULT INSERT INTO meineTabelle (Spalte1) VALUES (28) BEFORE ELEMET WHERE Spalte1 <29
Sie wird in mehreren Beispielen verwendet um SQL besser darstellen zu können.
TabelleName: emailAdressen Die Tabelle emailAdressen besteht aus 4 Spalten und 5 Reihen Spalte1 hat den Namen vorname. Spalte2 hat den Namen nachname Spalte3 hat den Namen email Spalte4 hat den Namen gewicht
Die Tabelle emailAdressen2 besteht aus 4 Spalten und 0 Reihen (Tabelle ist leer). Spalte1 hat den Namen vorname. Spalte2 hat den Namen nachname Spalte3 hat den Namen email Spalte4 hat den Namen gewicht
INSERT INTO emailAdressen ( vorname, nachname, email, gewicht ) VALUES (´Eva´,´Kaufmann´,´eva@yahoo.com´,56)
Mit diesem SQL Befehl wird eine Zeile in die Tabelle emailAdressen eingefügt.
Zeichenketten müssen zwischen einfachen oder doppelten Anführungszeichen stehen, um
eingefügt werden zu können. Das RDBMS führt vor dem Einfügen einer Zeile
einen
Integritätstest
durch. Dabei wird untersucht ob die eingefügten Werte dem
Datentyp der Spalte entsprechen, ob die einzufügenden Spalten existieren...
Weiters wird überprüft ob vom Benutzer der Wertebereich einer Spalte
eingeschränkt wurde (siehe
Vorschriften erstellen und
Tabellen erstellen).
Tabelle emailAdressen anzeigen
Tabelle nach Insert Anweisung:
PHP Syntax PERL Syntax
INSERT INTO emailAdressen ( vorname, nachname ) VALUES (´Eva´,´Kaufmann´)
Mit diesem SQL Befehl wird eine Zeile in die Tabelle emailAdressen eingefügt.
Für die Spalten email und gewicht wurden keine Werte definiert. Das
RDBMS füllt diese beiden Spalten automatisch mit DEFAULT Werten. Der DEFAULT Wert kann
bei der Erstellung der Tabelle vom Benutzer festgelegt werden (siehe
DEFAULT Wert definieren).
Hat er dies nicht gemacht so
wählt das RDBMS den DEFAULT Wert abhängig vom Datentyp der Spalte (z.B: für
eine Zeichenkette ist der DEFAULT Wert eine leere Zeichenkette für eine Zahl
ist der DEFAULT Wert NULL).
Bei der Erstellung der Tabelle kann festgelegt werden, dass für bestimmte Spalten immer ein
Wert eingefügt werden muss (siehe
Tabelle erstellen - NOT NULL).
Bevor die Zeile in die Tabelle eingefügt wird füht das RDBMS einen
Integritätstest
durch.
Tabelle emailAdressen anzeigen
Tabelle nach Insert Anweisung:
PHP Syntax PERL Syntax
INSERT INTO Benutzer2.emailAdressen ( vorname, nachname, email, gewicht ) VALUES (´Eva´,´Kaufmann´,´eva@yahoo.com´,56)
Unser BenutzerName lautet Benutzer1 und wir wollen in die Tabelle emailAdressen
des Benutzers Benutzer2 eine Zeile einfügen. Voraussetztung dass der Befehl
ausgeführt werden kann, ist, dass Benutzer2 uns die entsprechenden Rechte erteilt hat (siehe
Datenbank Administration).
Wie eine Zeile in eine Tabelle eingefügt wird, zeigen wir in
Ganze Zeile einfügen und
Spaltenwerte einfügen.
Tabelle emailAdressen anzeigen
Tabelle nach Insert Anweisung:
PHP Syntax PERL Syntax
INSERT INTO emailAdressen2 ( vorname, nachname ) VALUES SELECT FROM emailAdressen vorname, nachname
Der gesamte Inhalt der Spalten vorname und nachname wird von Tabelle
emailAdressen in die Tabelle emailAdressen2 kopiert. Die Datentypen der
kopierten Spalten müssen natürlich übereinstimmen (siehe
Datentypen).
Tabelle emailAdressen anzeigen
Tabelle emailAdressen2 nach Insert Anweisung:
PHP Syntax PERL Syntax
INSERT INTO emailAdressen2 ( vorname, nachname, email, gewicht ) VALUES SELECT FROM emailAdressen vorname, nachname, email, gewicht
Der gesamte Inhalt der Tabelle emailAdressen wird in die Tabelle
emailAdressen2 kopiert. Die Datentypen der
kopierten Spalten müssen natürlich übereinstimmen (siehe
Datentypen).
Tabelle emailAdressen anzeigen
Tabelle emailAdressen2 nach Insert Anweisung:
PHP Syntax PERL Syntax
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||