UPDATE Trong SQL Server - Comdy
Có thể bạn quan tâm
Update trong SQL Server – Cập nhật dữ liệu trong SQL Server
Table of Contents
- Update trong SQL Server – Cập nhật dữ liệu trong SQL Server
- Câu lệnh update trong SQL là gì?
- Ví dụ về hàm update trong SQL Server (cách update SQL server)
- Cập nhật một cột trong tất cả các bản ghi
- Cập nhật nhiều cột trong SQL
- Update join trong SQL server
- Cú pháp update join trong SQL Server
- Ví dụ về update join trong SQL Server
- Tạo bảng dữ liệu mẫu
- Ví dụ về UPDATE LEFT JOIN trong SQL Server
- Cú pháp update 2 bảng trong SQL
- Kết hợp update inner join trong SQL
- Update select trong SQL là gì?
- Kết lại
Câu lệnh update trong SQL là gì?
Để sửa đổi dữ liệu hiện có trong một bảng, bạn sử dụng cú pháp câu lệnh update sql như sau:
UPDATE table_name SET c1 = v1, c2 = v2, ... cn = vn [WHERE condition]Trong cú pháp câu lệnh sql update này:
- Đầu tiên, chỉ định tên của bảng mà dữ liệu sẽ được cập nhật.
- Thứ hai, chỉ định danh sách cột c1, c2, … cn và các giá trị v1, v2, … vn sẽ được cập nhật.
- Thứ ba, chỉ định các điều kiện trong mệnh đề WHERE để chọn các bản ghi được cập nhật. Mệnh đề WHERE này là tùy chọn. Nếu bạn bỏ qua mệnh đề WHERE, tất cả các bản ghi trong bảng sẽ được cập nhật.
Ví dụ về hàm update trong SQL Server (cách update SQL server)
Đầu tiên, chúng tôi sẽ tạo một bảng mới có tên taxes để minh họa câu lệnh update sql server.
CREATE TABLE sales.taxes ( tax_id INT PRIMARY KEY IDENTITY (1, 1), state VARCHAR (50) NOT NULL UNIQUE, state_tax_rate DEC (3, 2), avg_local_tax_rate DEC (3, 2), combined_rate AS state_tax_rate + avg_local_tax_rate, max_local_tax_rate DEC (3, 2), updated_at datetime );Thứ hai, thực hiện các câu lệnh sau để INSERT dữ liệu vào bảng taxes:
INSERT INTO sales.taxes ( state, state_tax_rate, avg_local_tax_rate, max_local_tax_rate ) VALUES('Alabama',0.04,0.05,0.07), VALUES('Alaska',0,0.01,0.07), VALUES('Arizona',0.05,0.02,0.05), VALUES('Arkansas',0.06,0.02,0.05), VALUES('California',0.07,0.01,0.02), VALUES('Colorado',0.02,0.04,0.08),Cập nhật một cột trong tất cả các bản ghi
Câu lệnh sau đây cập nhật một cột duy nhất cho tất cả các bản ghi trong bảng taxes:
UPDATE sales.taxes SET updated_at = GETDATE();Trong ví dụ update dữ liệu trong sql ở trên, câu lệnh đã thay đổi các giá trị trong cột updated_at thành thời gian ngày hệ thống được trả về bởi hàm GETDATE().
SQL Server đã đưa ra thông báo sau:
(6 rows affected)Nó có nghĩa là 51 bản ghi đã được cập nhật thành công.
Hãy xác minh cập nhật trên như sau:
SELECT * FROM sales.taxes;Như bạn có thể thấy kết quả đầu ra, cột updated_at đã được cập nhật với giá trị ngày hiện tại.
Cập nhật nhiều cột trong SQL
Câu lệnh sau đây làm tăng mức thuế suất địa phương tối đa thêm 2% và mức thuế suất địa phương trung bình thêm 1% đối với các tiểu bang có mức thuế suất địa phương tối đa 1%.
UPDATE sales.taxes SET max_local_tax_rate += 0.02, avg_local_tax_rate += 0.01 WHERE max_local_tax_rate = 0.01;Đây là thông báo được trả về bởi SQL Server:
(7 rows affected)Nó có nghĩa là thuế của 7 tiểu bang đã được cập nhật.
Update join trong SQL server
Cú pháp update join trong SQL Server
Để truy vấn dữ liệu từ các bảng có liên quan, bạn thường sử dụng các mệnh đề JOIN, INNER JOIN hoặc LEFT JOIN. Trong SQL Server, bạn có thể sử dụng các mệnh đề JOIN trong câu lệnh UPDATE để thực hiện cập nhật một bảng dựa trên các giá trị từ một bảng khác.
Sau đây minh họa cú pháp của mệnh đề UPDATE JOIN:
UPDATE t1 SET t1.c1 = t2.c2, t1.c2 = expression, ... FROM t1 [INNER | LEFT] JOIN t2 ON join_predicate WHERE where_predicate;Trong cú pháp update trong SQL ở trên:
- Đầu tiên, chỉ định tên của bảng (t1) mà bạn muốn cập nhật trong mệnh đề UPDATE.
- Thứ hai, chỉ định giá trị mới cho mỗi cột của bảng được cập nhật.
- Thứ ba, một lần nữa chỉ định bảng mà bạn muốn cập nhật trong mệnh đề FROM.
- Thứ tư, sử dụng mệnh đề INNER JOIN hoặc LEFT JOIN để join vào một bảng khác (t2) bằng cách sử dụng một biểu thức join được chỉ định sau từ khóa ON.
- Cuối cùng, thêm một mệnh đề WHERE tùy chọn để chỉ định các bản ghi sẽ được cập nhật.
Ví dụ về update join trong SQL Server
Chúng ta hãy xem một số ví dụ về việc sử dụng câu lệnh UPDATE JOIN.
Tạo bảng dữ liệu mẫu
Đầu tiên, tạo một bảng mới có tên là sales.targets để lưu trữ các mục tiêu bán hàng:
DROP TABLE IF EXISTS sales.targets; CREATE TABLE sales.targets ( target_id INT PRIMARY KEY, percentage DECIMAL(4, 2) NOT NULL DEFAULT 0 ); INSERT INTO sales.targets(target_id, percentage) VALUES (1,0.2), (2,0.3), (3,0.5), (4,0.6), (5,0.8);Nếu nhân viên bán hàng đạt được mục tiêu 1, họ sẽ nhận được tỷ lệ hoa hồng bán hàng 0,2 hoặc 20%, v.v.
Thứ hai, tạo một bảng khác có tên là sales.commissions để lưu trữ hoa hồng bán hàng:
CREATE TABLE sales.commissions ( staff_id INT PRIMARY KEY, target_id INT, base_amount DECIMAL(10, 2) NOT NULL DEFAULT 0, commission DECIMAL(10, 2) NOT NULL DEFAULT 0, FOREIGN KEY(target_id) REFERENCES sales.targets(target_id), FOREIGN KEY(staff_id) REFERENCES sales.staffs(staff_id), ); INSERT INTO sales.commissions(staff_id, base_amount, target_id) VALUES (1,100000,2), (2,120000,1), (3,80000,3), (4,900000,4), (5,950000,5);Bảng sales.commissions lưu trữ thông tin định danh nhân viên bán hàng, target_id, base_amount và commission. Bảng này liên kết với bảng sales.targets thông qua cột target_id.
Mục tiêu của chúng tôi là tính toán hoa hồng của tất cả nhân viên bán hàng dựa trên mục tiêu bán hàng của họ.
Ví dụ về UPDATE LEFT JOIN trong SQL Server
Giả sử chúng tôi có thêm hai nhân viên bán hàng mới tham gia và họ chưa có mục tiêu nào:
INSERT INTO sales.commissions(staff_id, base_amount, target_id) VALUES (6,100000,NULL), (7,120000,NULL);Chúng tôi giả định rằng hoa hồng cho nhân viên bán hàng mới là 0,1 hoặc 10%, chúng tôi có thể cập nhật hoa hồng của tất cả nhân viên bán hàng bằng cách sử dụng UPDATE LEFT JOIN như sau:
UPDATE sales.commissions SET sales.commissions.commission = c.base_amount * COALESCE(t.percentage,0.1) FROM sales.commissions c LEFT JOIN sales.targets t ON c.target_id = t.target_id;Trong ví dụ này, chúng tôi đã sử dụng COALESCE() để trả về 0,1 nếu tỷ lệ phần trăm là NULL.
Lưu ý: nếu bạn sử dụng mệnh đề UPDATE INNER JOIN, chỉ năm hàng của bảng có mục tiêu không phải là NULL sẽ được cập nhật.
Hãy xem dữ liệu trong bảng sales.commissions:
SELECT * FROM sales.commissions;Cú pháp update 2 bảng trong SQL
Cú pháp:
UPDATE table1 SET column1 = value1, column2 = value2, … FROM table1 JOIN table2 ON table1.common_column = table2.common_column WHERE your_condition;
Trong đó:
- table1: Tên của bảng mà bạn muốn cập nhật.
- column1, column2, …: Các cột bạn muốn cập nhật.
- value1, value2, …: Giá trị mới bạn muốn gán cho các cột tương ứng.
- table2: Tên của bảng mà bạn muốn kết hợp với bảng đầu tiên thông qua một điều kiện chung.
- common_column: Tên cột chung giữa hai bảng.
- your_condition: Điều kiện để xác định các dòng cụ thể mà bạn muốn cập nhật. Nếu không có điều kiện, tất cả các dòng sẽ được cập nhật.
Kết hợp update inner join trong SQL
Khi bạn muốn kết hợp câu lệnh update dữ liệu trong sql với INNER JOIN, bạn có thể sử dụng cú pháp như sau: UPDATE table1 SET column1 = value1, column2 = value2, … FROM table1 INNER JOIN table2 ON table1.common_column = table2.common_column WHERE your_condition;Trong đó:
- table1: Tên của bảng mà bạn muốn cập nhật.
- column1, column2, …: Các cột bạn muốn cập nhật.
- value1, value2, …: Giá trị mới bạn muốn gán cho các cột tương ứng.
- table2: Tên của bảng mà bạn muốn kết hợp với bảng đầu tiên thông qua một điều kiện chung.
- common_column: Tên cột chung giữa hai bảng.
- your_condition: Điều kiện để xác định các dòng cụ thể mà bạn muốn cập nhật. Nếu không có điều kiện, tất cả các dòng sẽ được cập nhật.
Update select trong SQL là gì?
Câu lệnh UPDATE có thể kết hợp với câu lệnh SELECT để cập nhật dữ liệu dựa trên các giá trị được lấy từ kết quả của một truy vấn SELECT. Điều này thường được gọi là “update from select” hoặc “update with subquery”. Cú pháp sql server update join như sau:UPDATE table1 SET column1 = value1, column2 = value2, … FROM ( SELECT columnA, columnB, … FROM table2 WHERE your_condition ) AS subquery WHERE table1.common_column = subquery.common_column;
Trong cú pháp update join sql server trên:
- table1: Tên của bảng mà bạn muốn cập nhật.
- column1, column2, …: Các cột bạn muốn cập nhật.
- value1, value2, …: Giá trị mới bạn muốn gán cho các cột tương ứng.
- table2: Tên của bảng mà bạn muốn lấy dữ liệu từ đó để cập nhật.
- columnA, columnB, …: Các cột mà bạn muốn sử dụng để cập nhật dữ liệu trong table1.
- your_condition: Điều kiện để chọn dữ liệu từ table2 để cập nhật.
Kết lại
Trên đây là toàn bộ chia sẻ của Comdy về câu lệnh update trong SQL server. Hi vọng những kiến thức, thông tin trong bài viết này là bổ ích và ý nghĩa với bạn. Xin cám ơn!
Từ khóa » Cú Pháp Update Trong Sql
-
Mệnh đề UPDATE Cập Nhật Dữ Liệu SQL
-
Lệnh UPDATE Trong SQL
-
Lệnh UPDATE Trong SQL Server
-
Câu Lệnh UPDATE Trong SQL - Học Sql Cơ Bản đến Nâng Cao - VietTuts
-
Câu Lệnh UPDATE Chỉnh Sửa Dữ Liệu Bảng Trong SQL
-
Chi Tiết Bài Học 02. Lệnh UPDATE Trong SQL - Vimentor
-
Lệnh UPDATE Trong SQL, Cú Pháp Và Ví Dụ Minh Họa - Thủ Thuật
-
Bài 8: Câu Lệnh Insert, Update Và Delete Trong SQL Server - VnCoder
-
Lệnh Update Trong SQL
-
Lệnh Update Trong Oracle
-
Thêm, Cập Nhật Và Xóa Dữ Liệu Trong SQL Server - Tin Học 88
-
UPDATE Trong SQL | 79 Bài Học SQL Hay Nhất
-
Lệnh Update Trong SQL - Vi
-
[ThaoVTP] Tìm Hiểu Về SQL Và Một Số Câu Lệnh SQL Cơ Bản - Viblo