SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Cách cập nhật dữ liệu hiện có bằng SQLite


Giới thiệu

Khi một phần dữ liệu đi vào cơ sở dữ liệu, rất khó có khả năng nó vẫn ở trạng thái tĩnh trong suốt thời gian nằm trong bảng. Dữ liệu được cập nhật để phản ánh những thay đổi trong hệ thống mà chúng đại diện để vẫn phù hợp và cập nhật. SQLite cho phép bạn thay đổi các giá trị trong bản ghi bằng cách sử dụng UPDATE Lệnh SQL.

UPDATE các chức năng tương tự như INSERT (trong đó bạn chỉ định các cột và giá trị mong muốn của chúng) và DELETE (trong đó bạn cung cấp các tiêu chí cần thiết để nhắm mục tiêu các bản ghi cụ thể). Bạn cũng có thể sửa đổi dữ liệu từng cái một hoặc hàng loạt. Trong bài viết này, chúng ta sẽ đi sâu vào cách sử dụng UPDATE một cách hiệu quả để quản lý dữ liệu của bạn đã được lưu trữ trong các bảng.



Sử dụng UPDATE để sửa đổi dữ liệu

Cú pháp cơ bản của UPDATE lệnh trông giống như sau:

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

Cấu trúc cơ bản bao gồm ba mệnh đề riêng biệt:

  • chỉ định một bảng để hành động
  • cung cấp các cột bạn muốn cập nhật cũng như các giá trị mới của chúng
  • xác định bất kỳ tiêu chí nào mà SQLite cần đánh giá để xác định bản ghi nào phù hợp

Trong khi bạn có thể chỉ định giá trị trực tiếp cho các cột như chúng tôi đã làm ở trên, bạn cũng có thể sử dụng cú pháp danh sách cột, như thường thấy trong INSERT lệnh.

Ví dụ:chúng ta có thể thay đổi ví dụ trên để trông như sau:

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


Trả về các bản ghi được sửa đổi bởi UPDATE lệnh

Theo mặc định, SQLite không hiển thị số hàng bị ảnh hưởng bởi UPDATE tuyên bố. Tuy nhiên, SQLite đã thêm RETURNING mệnh đề được mô hình hóa sau PostgreSQL trong phiên bản 3.35.0 . Mệnh đề này khiến các lệnh trả về tất cả hoặc một phần của các bản ghi đã được sửa đổi.

Bạn có thể sử dụng dấu hoa thị * để trả về tất cả các cột của các hàng đã sửa đổi giống như một SELECT tuyên bố:

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

Ngoài ra, bạn cũng có thể chỉ định các cột chính xác mà bạn muốn hiển thị có / không có bí danh bằng cách sử dụng AS :

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


Cập nhật bản ghi dựa trên các giá trị trong một bảng khác

Cập nhật dữ liệu dựa trên dữ liệu bên ngoài mới là một quá trình được sắp xếp tương đối hợp lý. Bạn chỉ cần cung cấp bảng, cột, giá trị mới và tiêu chí nhắm mục tiêu.

Tuy nhiên, với SQLite, bạn cũng có thể sử dụng UPDATE để cập nhật có điều kiện các giá trị bảng dựa trên thông tin trong một bảng khác trong cơ sở dữ liệu của bạn. Cú pháp cơ bản sẽ giống như sau:

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

Tại đây, chúng tôi đang cập nhật trực tiếp giá trị của column1 trong table1 là sự trả về của một SELECT truy vấn con trên table2 , nhưng chỉ trong các hàng có column2 của table1 khớp với column2 của table2 . FROM mệnh đề chỉ ra kết nối giữa hai bảng và WHERE chỉ định các điều kiện.

Ví dụ, giả sử rằng chúng ta có hai bảng được gọi là bookauthor .

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');

Hai bảng này có mối quan hệ với book.author_id tham chiếu đến author.id . Hiện tại last_publication cho author bảng là NULL . Chúng tôi có thể điền nó với cuốn sách được xuất bản mới nhất của tác giả trong book của chúng tôi bảng sử dụng FROMWHERE các mệnh đề để kết hợp hai bảng lại với nhau.

Ở đây, chúng tôi hiển thị một ví dụ về cập nhật last_publication :

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

Nếu bạn truy vấn author bây giờ, nó sẽ hiển thị cho bạn tiêu đề của ấn phẩm gần đây nhất của họ trong cơ sở dữ liệu:

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


Kết luận

Trong hướng dẫn này, chúng tôi đã xem xét các cách cơ bản mà bạn có thể sửa đổi dữ liệu hiện có trong bảng bằng cách sử dụng UPDATE yêu cầu. Việc thực thi các khái niệm cơ bản này cho phép bạn chỉ định tiêu chí chính xác cần thiết để xác định các hàng hiện có trong bảng, cập nhật tên cột với các giá trị và tùy chọn trả về các hàng đã bị ảnh hưởng với RETURNING . UPDATE lệnh rất quan trọng để quản lý dữ liệu của bạn sau lần chèn đầu tiên vào cơ sở dữ liệu của bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách định dạng kết quả SQLite dưới dạng bảng

  2. Cách cài đặt trình duyệt SQLite và SQLite trong Ubuntu

  3. Cách tạo Ứng dụng Quốc tế hóa Ngoại tuyến:Hỗ trợ nhiều ngôn ngữ

  4. Phòng cách tốt nhất để tạo bản sao lưu cho ứng dụng ngoại tuyến?

  5. Chương trình Android để chuyển đổi cơ sở dữ liệu SQLite sang excel