sql >> Databáze >  >> RDS >> SQLite

Jak aktualizovat existující data pomocí SQLite


Úvod

Jakmile část dat vstoupí do databáze, je velmi nepravděpodobné, že zůstane statická po celou dobu strávenou v tabulce. Data jsou aktualizována, aby odrážela změny v systémech, které představují, aby zůstala relevantní a aktuální. SQLite umožňuje měnit hodnoty v záznamech pomocí UPDATE SQL příkaz.

UPDATE funkce podobné INSERT (tím, že určíte sloupce a jejich požadované hodnoty) a DELETE (tím, že zadáte kritéria potřebná pro cílení na konkrétní záznamy). Můžete také upravovat data jednotlivě nebo hromadně. V tomto článku se ponoříme do toho, jak používat UPDATE efektivně spravovat vaše data, která jsou již uložena v tabulkách.



Pomocí UPDATE upravit data

Základní syntaxe UPDATE příkaz vypadá asi takto:

UPDATE my_tableSET        column1 = value1,        column2 = value2,WHERE        id = 1;

Základní struktura zahrnuje tři samostatné klauzule:

  • určení tabulky, se kterou se má jednat
  • zadáním sloupců, které chcete aktualizovat, a jejich nových hodnot
  • definování jakýchkoli kritérií, která musí SQLite vyhodnotit, aby určila, které záznamy mají odpovídat

I když můžete přiřadit hodnoty přímo sloupcům, jako jsme to udělali výše, můžete také použít syntaxi seznamu sloupců, jak je často vidět v INSERT příkazy.

Výše uvedený příklad můžeme například upravit tak, aby vypadal následovně:

UPDATE my_tableSET (column1, column2) =        (value1, value2)WHERE        id = 1;


Vracení záznamů upravených UPDATE příkaz

Ve výchozím nastavení SQLite neukazuje počet řádků ovlivněných UPDATE prohlášení. SQLite však přidal RETURNING klauzule po vzoru PostgreSQL ve verzi 3.35.0 . Tato klauzule způsobí, že příkazy vrátí všechny nebo část záznamů, které byly změněny.

Můžete použít hvězdičku * symbol vrátí všechny sloupce upravených řádků podobně jako SELECT prohlášení:

UPDATE my_tableSET        column1 = value1,        column2 = value2,WHERE        id = 1RETURNING *;

Kromě toho můžete pomocí AS určit přesné sloupce, které chcete zobrazovat s aliasem nebo bez něj. :

UPDATE my_tableSET        column1 = value1,        column2 = value2WHERE        id = 1RETURNING column1 AS 'first column';


Aktualizace záznamů na základě hodnot v jiné tabulce

Aktualizace dat na základě nových externích dat je relativně zjednodušený proces. Stačí zadat tabulku, sloupce, nové hodnoty a kritéria cílení.

S SQLite však můžete také použít UPDATE podmíněně aktualizovat hodnoty tabulky na základě informací v jiné tabulce v databázi. Základní syntaxe bude vypadat nějak takto:

UPDATE table1SET table1.column1 =(    SELECT table2.column1    FROM table2    WHERE table1.column2 = table2.column2);

Zde přímo aktualizujeme hodnotu column1 v table1 být návratem SELECT dílčí dotaz na table2 , ale pouze v řádcích, kde je column2 z table1 odpovídá column2 z table2 . FROM klauzule označuje spojení mezi dvěma tabulkami a WHERE specifikuje podmínky.

Jako příklad předpokládejme, že máme dvě tabulky nazvané book a 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');

Tyto dvě tabulky mají vztah s book.author_id odkazující na author.id . Aktuálně last_publication pro author tabulka je NULL . Můžeme jej naplnit autorovou nejnovější vydanou knihou v naší book pomocí FROM a WHERE klauzule ke spojení dvou tabulek.

Zde uvádíme příklad aktualizace last_publication :

UPDATE author SET last_publication=(  SELECT title   FROM book   WHERE author_id = author.id  ORDER BY author_id, publication_year DESC);

Pokud se zeptáte author nyní vám ukáže název jejich nejnovější publikace v databázi:

SELECT * FROM author;
+------------+------------+-----------+--------------------------+      id       first_name  last_name      last_publication     +-------------+------------+-----------+--------------------------+       1       Leo          Tolstoy        Anna Karenina              2       James         Joyce             Ulysses                3       Jean-Paul     Sarte             Nausea          +-------------+------------+-----------+--------------------------+


Závěr

V této příručce jsme se podívali na základní způsoby, jak můžete upravit existující data v tabulce pomocí UPDATE příkaz. Provedení těchto základních konceptů vám umožňuje určit přesná kritéria nezbytná k identifikaci existujících řádků v tabulce, aktualizovat názvy sloupců hodnotami a volitelně vrátit řádky, které byly ovlivněny pomocí RETURNING . UPDATE Příkaz je rozhodující pro správu vašich dat po počátečním vložení do vašich databází.




  1. Monitorování vašich databází pomocí MySQL Enterprise Monitor

  2. SQL Server tabulky:jaký je rozdíl mezi @, # a ##?

  3. Funkce pro vrácení dynamické sady sloupců pro danou tabulku

  4. Archiver pozastaven kvůli KOMPATIBILNÍMU ORA-16484