SQLite INSERT a New Record oder UPDATE One, falls er bereits existiert
-
SQLite
INSERT
-Befehl -
SQLite
UPDATE
-Befehl -
SQLite
INSERT
einen neuen Datensatz oderUPDATE
einen, wenn er bereits existiert
Dieser Artikel erläutert die Verwendung der Befehle INSERT
, UPDATE
und INSERT OR UPDATE
. Hier wird auch besprochen, wie man einen neuen Datensatz EINFÜGT
oder einen Datensatz AKTUALISIERT
, wenn er bereits existiert.
SQLite INSERT
-Befehl
In SQLite ist das Einfügen von Daten in die Tabelle ziemlich einfach. Sie können die Anweisung INSERT
verwenden, um die Aufgabe zu erledigen.
In SQLite können Sie mit verschiedenen Formen der INSERT
-Anweisung mehrere Zeilen, einzelne Zeilen und Standardwerte in die Tabelle einfügen. Sie können eine Reihe von Daten in die Tabelle einfügen, indem Sie die Anweisung SELECT
verwenden.
Um eine einzelne Zeile in eine Datenbanktabelle einzufügen, können Sie die folgende Form der INSERT
-Anweisung verwenden:
INSERT INTO table (c1,c2, c3..) VALUES( val1, val2,val3..);
Vor dem Hinzufügen müssen Sie nach der Anweisung INSERT INTO
den Namen der Tabelle angeben, in die Sie die Daten einfügen möchten.
Für Spalten der Tabelle müssen Sie eine durch Kommas getrennte Liste hinzufügen. Die Liste ist optional, aber es empfiehlt sich, sie aufzuschreiben.
Fügen Sie nach dem Schlüsselwort VALUE
eine separate Kommaliste mit Werten in derselben Spaltenreihenfolge hinzu. Wenn Sie die Spaltenliste weglassen, müssen Sie Werte für alle Spalten in der Werteliste angeben.
Beachten Sie, dass die Anzahl der Spalten und Werte in der Liste gleich sein sollte.
Sie können ein ähnliches Format verwenden, um mehrere Zeilen in eine Tabelle einzufügen. Sie können dies folgendermaßen mit der Anweisung INSERT
tun:
INSERT INTO table1 (c1,c2,c3..) VALUES (val1,val2,val3...), (val1,val2,val3...), ... (val1,val2,val3...), ;
Jede nach der VALUES
-Klausel geschriebene Werteliste wird als Zeile in die Tabelle eingefügt.
Fügen Sie im vorherigen Beispiel drei Zeilen zur Tabelle hinzu. Sobald dies erledigt ist, gibt SQLite eine Meldung "Row Affected: 3"
aus.
Das bedeutet, dass die Daten in drei Zeilen geändert wurden. Sie können die select
-Anweisung verwenden, um den Inhalt der Tabelle anzuzeigen, um sicherzustellen, dass Ihre beabsichtigte Einfügung in die Datenbank erfolgt.
Sie können auch Standardwerte angeben und in eine Tabelle eingeben. Dadurch wird eine neue Zeile in die Tabelle eingefügt, wobei die zuvor für Sie festgelegten Standardwerte verwendet werden.
NULL
wird zugewiesen, wenn kein Standardwert verfügbar ist und die Einschränkung NOT NULL
nicht angegeben ist.
SQLite UPDATE
-Befehl
Wenn Sie Daten in SQLite ändern müssen, verwenden Sie die Abfrage UPDATE
. Um ausgewählte Zeilen zu aktualisieren, können Sie die WHERE
-Abfrage mit der UPDATE
-Abfrage verwenden; Andernfalls werden alle Tabellenzeilen aktualisiert.
Die Syntax zum Aktualisieren von Daten in SQLite lautet wie folgt:
UPDATE table_name
SET c1 = val1, c2 = val2...., cName = valName
WHERE [your condition];
Sie können die Operatoren UND
oder ODER
kombinieren, wenn Sie mehrere Bedingungen erfüllen müssen. Sie müssen nicht die WHERE
-Klausel verwenden, um alle Tabellenzeilen zu aktualisieren.
SQLite INSERT
einen neuen Datensatz oder UPDATE
einen, wenn er bereits existiert
Der INSERT OR UPDATE
-Befehl ist im Wesentlichen eine Erweiterung des INSERT
-Befehls. Der Hauptunterschied besteht darin, dass, wenn die einzufügende Zeile nicht existiert, INSERT OR UPDATE
eine INSERT
-Operation ausführt.
Wenn die eingefügte Zeile jedoch bereits existiert, führt INSERT OR UPDATE
eine UPDATE
-Operation durch. Diese Operation aktualisiert die Zeile mit bestimmten Spaltenwerten.
Diese Aktualisierung erfolgt, wenn die angegebenen Datenwerte mit den vorhandenen Daten identisch sind. INSERT OR UPDATE
verwendet dieselbe Syntax, dieselben Funktionen und Einschränkungen wie die INSERT
-Anweisung.
Wenn Sie einen Datensatz mit einem eindeutigen Wert hinzufügen müssen, wird das Feld geändert, wenn der Wert, z. B. name
, bereits vorhanden ist. Dazu können Sie den folgenden Code verwenden:
insert or replace into Employee (ID, Name, Type, Age, Salary) values
((select ID from Employee where Name = "SearchName"), "SearchName", ...);
Jedem Feld, das nicht in der Einfügen
-Liste existiert, wird NULL
zugewiesen, wenn die Tabellenzeile bereits existiert. Daher verwenden wir hier den Subselect für die Spalte ID
.
Im Ersetzungsfall würde diese Anweisung den Wert auf NULL
setzen und dann eine neue ID
vergeben.
Ein ähnlicher Ansatz kann verwendet werden, wenn Sie im Ersetzungsfall bestimmte Feldwerte in der Zeile belassen und im Einfügungsfall den Feldwert auf NULL
setzen möchten.
Nehmen wir an, wir wollen die Spalte Gehalt
aus dem vorherigen Beispiel in Ruhe lassen. Dies kann auf folgende Weise erreicht werden:
insert or replace into Employee (ID, Name, Type, Age, Salary) values (
(select ID from Employee where Name = "SearchName"),
"SearchName",
5,
6,
(select Salary from Book where Name = "SearchName"));
Ein anderer Ansatz hierfür kann die Verwendung von INSERT OR IGNORE
gefolgt von UPDATE
sein.
Beispiel: (Hier ist name
der Primärschlüssel.)
INSERT OR IGNORE INTO Employee (name, age) VALUES ('Janet,' 23)
UPDATE Employee SET age = 23 WHERE name='Janet'
Hier fügt der erste Befehl den Datensatz ein. Wenn der Datensatz vorhanden ist, wird der durch den Konflikt mit dem vorhandenen Primärschlüssel verursachte Fehler ignoriert.
Der zweite Befehl hier aktualisiert den Datensatz, der in diesem Fall jetzt vorhanden ist.
SQLite verwendet mehrere Befehle, die es Benutzern ermöglichen, Daten nach Bedarf einzufügen, zu ändern und zu extrahieren. Die Befehle INSERT
und UPDATE
sind entscheidend, um die Arbeit zu erledigen.
Es gibt verschiedene Änderungen sowie Ansätze bei der Verwendung dieser Befehle. In diesem Artikel haben wir die Syntax und Funktionalität dieser Befehle umrissen, um sicherzustellen, dass Sie wissen, wie man sie verwendet.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub