SQLite
 sql >> база данни >  >> RDS >> SQLite

Как да актуализирате съществуващи данни с SQLite


Въведение

След като част от данни влезе в база данни, е много малко вероятно тя да остане статична през цялото време, прекарано в таблица. Данните се актуализират, за да отразяват промените в системите, които представляват, за да останат актуални и актуални. SQLite ви позволява да променяте стойностите в записи с помощта на UPDATE SQL команда.

UPDATE функции, подобни на INSERT (в който посочвате колони и техните желани стойности) и DELETE (с това, че предоставяте критериите, необходими за насочване към конкретни записи). Можете също така да променяте данни един по един или групово. В тази статия ще се потопим в това как да използвате UPDATE ефективно да управлявате вашите данни, които вече се съхраняват в таблици.



Използване на UPDATE за промяна на данни

Основният синтаксис на UPDATE командата изглежда така:

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

Основната структура включва три отделни клаузи:

  • посочване на таблица, върху която да се действа
  • предоставяне на колоните, които искате да актуализирате, както и техните нови стойности
  • дефиниране на всички критерии, които SQLite трябва да оцени, за да определи кои записи да съвпадат

Въпреки че можете да присвоявате стойности директно на колони, както направихме по-горе, можете също да използвате синтаксиса на списъка с колони, както често се вижда в INSERT команди.

Например, можем да променим горния пример, за да изглежда по следния начин:

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


Връщане на записи, променени от UPDATE команда

По подразбиране SQLite не показва броя на редовете, засегнати от UPDATE изявление. Въпреки това SQLite добави RETURNING клауза, моделирана по PostgreSQL във версия 3.35.0 . Тази клауза кара командите да връщат всички или част от записите, които са били променени.

Можете да използвате звездичката * символ, за да върне всички колони на модифицираните редове, подобно на SELECT изявление:

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

Освен това можете също да посочите точните колони, които ви интересуват да се показват с/без псевдоним, като използвате AS :

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


Актуализиране на записи въз основа на стойности в друга таблица

Актуализирането на данни въз основа на нови външни данни е сравнително опростен процес. Трябва само да предоставите таблицата, колоните, новите стойности и критериите за насочване.

Въпреки това, със SQLite можете да използвате и UPDATE за условно актуализиране на стойностите на таблицата въз основа на информация в друга таблица във вашата база данни. Основният синтаксис ще изглежда така:

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

Тук директно актуализираме стойността на column1 в table1 да бъде връщането на SELECT подзаявка към table2 , но само в редове, където column2 на table1 съвпада с column2 на table2 . FROM клауза показва връзка между двете таблици и WHERE определя условията.

Като пример, нека да предположим, че имаме две таблици, наречени book и 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');

Тези две таблици имат връзка с book.author_id препраща author.id . В момента last_publication за author таблицата е NULL . Можем да го попълним с последната публикувана книга на автора в нашата book таблица с помощта на FROM и WHERE клаузи за сближаване на двете таблици.

Тук показваме пример за актуализиране на last_publication :

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

Ако потърсите author таблица сега, ще ви покаже заглавието на последната им публикация в базата данни:

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


Заключение

В това ръководство разгледахме основните начини, по които можете да модифицирате съществуващи данни в таблица с помощта на UPDATE команда. Изпълнението на тези основни концепции ви позволява да посочите точните критерии, необходими за идентифициране на съществуващите редове в таблица, да актуализирате имената на колони със стойности и по избор да върнете редовете, които са били засегнати с RETURNING . UPDATE командата е от решаващо значение за управлението на вашите данни след първоначалното вмъкване във вашите бази данни.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. не може да се копира база данни с помощта на клас SQLiteAssetHelper

  2. Максимален размер на базата данни на SQLite в приложението за Android

  3. Как да извлечете деня, месеца и годината от дата в SQLite

  4. 3 начина за намиране на редове, които съдържат главни букви в SQLite

  5. Вградената връзка в Android Room игнорира условието на SQL where