SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Jak zaktualizować istniejące dane za pomocą SQLite


Wprowadzenie

Gdy część danych trafi do bazy danych, jest bardzo mało prawdopodobne, że pozostanie statyczna przez cały czas spędzony w tabeli. Dane są aktualizowane w celu odzwierciedlenia zmian w systemach, które reprezentują, aby pozostały istotne i aktualne. SQLite umożliwia zmianę wartości w rekordach za pomocą UPDATE polecenie SQL.

UPDATE funkcje podobne do INSERT (w tym, że określasz kolumny i ich żądane wartości) i DELETE (w tym, że podajesz kryteria potrzebne do kierowania określonych rekordów). Możesz także modyfikować dane pojedynczo lub zbiorczo. W tym artykule dowiemy się, jak używać UPDATE skutecznie zarządzać danymi, które są już przechowywane w tabelach.



Korzystanie z UPDATE modyfikować dane

Podstawowa składnia UPDATE polecenie wygląda mniej więcej tak:

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

Podstawowa struktura obejmuje trzy oddzielne klauzule:

  • określanie tabeli do działania
  • podając kolumny, które chcesz zaktualizować, a także ich nowe wartości
  • definiowanie jakichkolwiek kryteriów, które SQLite musi ocenić, aby określić, które rekordy mają pasować

Chociaż możesz przypisać wartości bezpośrednio do kolumn, tak jak to zrobiliśmy powyżej, możesz również użyć składni listy kolumn, jak często widać w INSERT poleceń.

Na przykład możemy zmienić powyższy przykład, aby wyglądał następująco:

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


Zwracanie rekordów zmodyfikowanych przez UPDATE polecenie

Domyślnie SQLite nie pokazuje liczby wierszy, na które ma wpływ UPDATE oświadczenie. Jednak SQLite dodał RETURNING klauzula wzorowana na PostgreSQL w wersji 3.35.0 . Ta klauzula powoduje, że polecenia zwracają wszystkie lub część rekordów, które zostały zmodyfikowane.

Możesz użyć gwiazdki * symbol, aby zwrócić wszystkie kolumny zmodyfikowanych wierszy, podobnie jak SELECT oświadczenie:

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

Dodatkowo możesz również określić dokładne kolumny, które chcesz wyświetlić z/bez aliasu, używając AS :

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


Aktualizowanie rekordów na podstawie wartości w innej tabeli

Aktualizowanie danych na podstawie nowych danych zewnętrznych to stosunkowo uproszczony proces. Wystarczy podać tabelę, kolumny, nowe wartości i kryteria kierowania.

Jednak z SQLite możesz również użyć UPDATE do warunkowego aktualizowania wartości tabeli na podstawie informacji z innej tabeli w bazie danych. Podstawowa składnia będzie wyglądać mniej więcej tak:

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

Tutaj bezpośrednio aktualizujemy wartość column1 w table1 być zwrotem SELECT podzapytanie w table2 , ale tylko w wierszach, w których column2 z table1 pasuje do column2 z table2 . FROM klauzula wskazuje połączenie między dwiema tabelami i WHERE określa warunki.

Jako przykład załóżmy, że mamy dwie tabele o nazwie book i 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');

Te dwie tabele mają związek z book.author_id odwoływanie się do author.id . Obecnie last_publication dla author tabela jest NULL . Możemy wypełnić ją najnowszą opublikowaną książką autora w naszej book tabela przy użyciu FROM i WHERE klauzule, które łączą te dwa stoły.

Tutaj pokazujemy przykład aktualizacji last_publication :

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

Jeśli zapytasz author tabeli teraz pokaże tytuł ich ostatniej publikacji w bazie danych:

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


Wniosek

W tym przewodniku przyjrzeliśmy się podstawowym sposobom modyfikowania istniejących danych w tabeli za pomocą UPDATE Komenda. Wykonanie tych podstawowych koncepcji pozwala określić dokładne kryteria niezbędne do zidentyfikowania istniejących wierszy w tabeli, zaktualizować nazwy kolumn wartościami i opcjonalnie zwrócić wiersze, na które miało wpływ RETURNING . UPDATE polecenie ma kluczowe znaczenie dla zarządzania danymi po początkowym wstawieniu do baz danych.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak poprawnie zamknąć kursor w Androidzie

  2. 5 sposobów na sprawdzenie typu danych kolumny w SQLite

  3. Czy średnik jest konieczny w SQL?

  4. sqliteLog 14:nie można otworzyć pliku w wierszu

  5. Migracja pokoju Zmień tabelę nie dodając nowej kolumny i migrując, wywoływana wielokrotnie