PostgreSQL - Truy vấn CẬP NHẬT

PostgreSQL UPDATETruy vấn được sử dụng để sửa đổi các bản ghi hiện có trong bảng. Bạn có thể sử dụng mệnh đề WHERE với truy vấn UPDATE để cập nhật các hàng đã chọn. Nếu không, tất cả các hàng sẽ được cập nhật.

Cú pháp

Cú pháp cơ bản của truy vấn UPDATE với mệnh đề WHERE như sau:

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

Bạn có thể kết hợp N số điều kiện bằng cách sử dụng toán tử AND hoặc OR.

Thí dụ

Hãy xem xét bảng COMPANY , có các bản ghi như sau:

testdb# select * from COMPANY;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

Sau đây là một ví dụ, sẽ cập nhật ADDRESS cho một khách hàng có ID là 6 -

testdb=# UPDATE COMPANY SET SALARY = 15000 WHERE ID = 3;

Bây giờ, bảng COMPANY sẽ có các bản ghi sau:

id | name  | age | address    | salary
----+-------+-----+------------+--------
  1 | Paul  |  32 | California |  20000
  2 | Allen |  25 | Texas      |  15000
  4 | Mark  |  25 | Rich-Mond  |  65000
  5 | David |  27 | Texas      |  85000
  6 | Kim   |  22 | South-Hall |  45000
  7 | James |  24 | Houston    |  10000
  3 | Teddy |  23 | Norway     |  15000
(7 rows)

Nếu bạn muốn sửa đổi tất cả các giá trị cột ĐỊA CHỈ và LƯƠNG trong bảng CÔNG TY, bạn không cần sử dụng mệnh đề WHERE và truy vấn CẬP NHẬT sẽ như sau:

testdb=# UPDATE COMPANY SET ADDRESS = 'Texas', SALARY=20000;

Bây giờ, bảng COMPANY sẽ có các bản ghi sau:

id | name  | age | address | salary
----+-------+-----+---------+--------
  1 | Paul  |  32 | Texas   |  20000
  2 | Allen |  25 | Texas   |  20000
  4 | Mark  |  25 | Texas   |  20000
  5 | David |  27 | Texas   |  20000
  6 | Kim   |  22 | Texas   |  20000
  7 | James |  24 | Texas   |  20000
  3 | Teddy |  23 | Texas   |  20000
(7 rows)