SQLite
 sql >> Datenbank >  >> RDS >> SQLite

So aktualisieren Sie vorhandene Daten mit SQLite


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.