SQLite INSERT a New Record oder UPDATE One, falls er bereits existiert

Bilal Shahid 21 Juni 2023
  1. SQLite INSERT-Befehl
  2. SQLite UPDATE-Befehl
  3. SQLite INSERT einen neuen Datensatz oder UPDATE einen, wenn er bereits existiert
SQLite INSERT a New Record oder UPDATE One, falls 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.

Bilal Shahid avatar Bilal Shahid avatar

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

Verwandter Artikel - SQLite Insert