Einführung
Sobald ein Datenelement in eine Datenbank gelangt, ist es sehr unwahrscheinlich, dass es während der gesamten Zeit, die es in einer Tabelle verbringt, statisch bleibt. Die Daten werden aktualisiert, um Änderungen in den Systemen widerzuspiegeln, die sie darstellen, um relevant und aktuell zu bleiben. SQLite ermöglicht es Ihnen, die Werte in Datensätzen mit UPDATE
zu ändern SQL-Befehl.
UPDATE
funktioniert ähnlich wie INSERT
(indem Sie Spalten und deren gewünschte Werte angeben) und DELETE
(indem Sie die Kriterien angeben, die für das Targeting bestimmter Datensätze erforderlich sind). Sie können Daten auch einzeln oder in großen Mengen ändern. In diesem Artikel werden wir uns mit der Verwendung von UPDATE
befassen um Ihre bereits in Tabellen gespeicherten Daten effektiv zu verwalten.
Mit UPDATE
um Daten zu ändern
Die grundlegende Syntax des UPDATE
Befehl sieht in etwa so aus:
UPDATE my_tableSET column1 = value1, column2 = value2,WHERE id = 1;
Die Grundstruktur besteht aus drei separaten Klauseln:
- Festlegen einer Tabelle, auf die reagiert werden soll
- Angabe der Spalten, die Sie aktualisieren möchten, sowie ihrer neuen Werte
- Definieren aller Kriterien, die SQLite auswerten muss, um zu bestimmen, welche Datensätze übereinstimmen
Während Sie wie oben Werte direkt Spalten zuweisen können, können Sie auch die Spaltenlistensyntax verwenden, wie sie häufig in INSERT
zu sehen ist Befehle.
Zum Beispiel können wir das obige Beispiel so ändern, dass es wie folgt aussieht:
UPDATE my_tableSET (column1, column2) = (value1, value2)WHERE id = 1;
Rückgabe von Datensätzen, die durch das UPDATE
geändert wurden Befehl
Standardmäßig zeigt SQLite nicht die Anzahl der Zeilen an, die von einem UPDATE
betroffen sind Erklärung. Allerdings hat SQLite den RETURNING
hinzugefügt -Klausel nach dem Vorbild von PostgreSQL in Version 3.35.0
. Diese Klausel bewirkt, dass die Befehle alle oder einen Teil der geänderten Datensätze zurückgeben.
Sie können das Sternchen *
verwenden Symbol, um alle Spalten der geänderten Zeilen ähnlich wie bei SELECT
zurückzugeben Aussage:
UPDATE my_tableSET column1 = value1, column2 = value2,WHERE id = 1RETURNING *;
Darüber hinaus können Sie mit AS
auch genaue Spalten angeben, die Sie mit/ohne Alias anzeigen möchten :
UPDATE my_tableSET column1 = value1, column2 = value2WHERE id = 1RETURNING column1 AS 'first column';
Aktualisierung von Datensätzen basierend auf Werten in einer anderen Tabelle
Das Aktualisieren von Daten basierend auf neuen externen Daten ist ein relativ rationalisierter Prozess. Sie müssen nur die Tabelle, die Spalten, die neuen Werte und die Targeting-Kriterien angeben.
Mit SQLite können Sie jedoch auch UPDATE
verwenden um Tabellenwerte basierend auf Informationen in einer anderen Tabelle in Ihrer Datenbank bedingt zu aktualisieren. Die grundlegende Syntax sieht in etwa so aus:
UPDATE table1SET table1.column1 =( SELECT table2.column1 FROM table2 WHERE table1.column2 = table2.column2);
Hier aktualisieren wir direkt den Wert von column1
in table1
die Rückgabe eines SELECT
sein Unterabfrage auf table2
, aber nur in Zeilen, in denen column2
von table1
stimmt mit column2
überein von table2
. Der FROM
-Klausel gibt eine Verbindung zwischen den beiden Tabellen und WHERE
an legt die Bedingungen fest.
Nehmen wir als Beispiel an, dass wir zwei Tabellen mit dem Namen book
haben und author
.
CREATE TABLE author ( id INTEGER PRIMARY KEY, first_name TEXT, last_name TEXT, last_publication TEXT);CREATE TABLE book ( id INTEGER PRIMARY KEY, author_id INT REFERENCES author.id title TEXT, publication_year INTEGER);INSERT INTO author (first_name, last_name)VALUES ('Leo', 'Tolstoy'), ('James', 'Joyce'), ('Jean-Paul', 'Sarte'); INSERT INTO book (author_id, title, publication_year)VALUES (1, 'Anna Karenina', '1877'), (1, 'War and Peace', '1867'), (2, 'Ulysses', '1920'), (2, 'Dubliners', '1914'), (3, 'Nausea', '1938');
Diese beiden Tabellen haben eine Beziehung zu book.author_id
Verweis auf author.id
. Derzeit die last_publication
für den author
Tabelle ist NULL
. Wir können es mit dem zuletzt veröffentlichten Buch des Autors in unserem book
füllen Tabelle mit FROM
und WHERE
-Klauseln, um die beiden Tabellen zusammenzubringen.
Hier zeigen wir ein Beispiel zum Aktualisieren von last_publication
:
UPDATE author SET last_publication=( SELECT title FROM book WHERE author_id = author.id ORDER BY author_id, publication_year DESC);
Wenn Sie den author
abfragen Tabelle jetzt, es zeigt Ihnen den Titel ihrer neuesten Veröffentlichung in der Datenbank:
SELECT * FROM author;
+------------+------------+-----------+--------------------------+ id first_name last_name last_publication +-------------+------------+-----------+--------------------------+ 1 Leo Tolstoy Anna Karenina 2 James Joyce Ulysses 3 Jean-Paul Sarte Nausea +-------------+------------+-----------+--------------------------+
Fazit
In diesem Leitfaden haben wir uns die grundlegenden Möglichkeiten angesehen, wie Sie vorhandene Daten innerhalb einer Tabelle mit UPDATE
ändern können Befehl. Durch die Ausführung dieser grundlegenden Konzepte können Sie die genauen Kriterien angeben, die zum Identifizieren der vorhandenen Zeilen in einer Tabelle erforderlich sind, Spaltennamen mit Werten aktualisieren und optional die Zeilen zurückgeben, die mit RETURNING
betroffen waren . Das UPDATE
Der Befehl ist entscheidend für die Verwaltung Ihrer Daten nach dem ersten Einfügen in Ihre Datenbanken.