Câu lệnh update trong sql server
Trong giải đáp này, bạn sẽ tìm gọi cách sử dụng câu lệnh UPDATE trong SQL vps để chuyển đổi dữ liệu hiện có trong một bảng.
Bạn đang xem: Câu lệnh update trong sql server
Để sửa đổi tài liệu hiện bao gồm trong một bảng, bạn thực hiện cú pháp câu lệnh UPDATE như sau:
UPDATE table_nameSET c1 = v1, c2 = v2, ... Công nhân = vn
Ví dụ về UPDATE trong SQL Server
Đầu tiên, shop chúng tôi sẽ tạo ra một bảng mới có tên taxes để minh họa câu lệnh UPDATE vào 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 nhằm 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),VALUES("Connecticut",0.06,0,0),VALUES("Delaware",0,0,0),VALUES("Florida",0.06,0,0.02),VALUES("Georgia",0.04,0.03,0.04),VALUES("Hawaii",0.04,0,0),VALUES("Idaho",0.06,0,0.03),VALUES("Illinois",0.06,0.02,0.04),VALUES("Indiana",0.07,0,0),VALUES("Iowa",0.06,0,0.01),VALUES("Kansas",0.06,0.02,0.04),VALUES("Kentucky",0.06,0,0),VALUES("Louisiana",0.05,0.04,0.07),VALUES("Maine",0.05,0,0),VALUES("Maryland",0.06,0,0),VALUES("Massachusetts",0.06,0,0),VALUES("Michigan",0.06,0,0),VALUES("Minnesota",0.06,0,0.01),VALUES("Mississippi",0.07,0,0.01),VALUES("Missouri",0.04,0.03,0.05),VALUES("Montana",0,0,0),VALUES("Nebraska",0.05,0.01,0.02),VALUES("Nevada",0.06,0.01,0.01),VALUES("New Hampshire",0,0,0),VALUES("New Jersey",0.06,0,0),VALUES("New Mexico",0.05,0.02,0.03),VALUES("New York",0.04,0.04,0.04),VALUES("North Carolina",0.04,0.02,0.02),VALUES("North Dakota",0.05,0.01,0.03),VALUES("Ohio",0.05,0.01,0.02),VALUES("Oklahoma",0.04,0.04,0.06),VALUES("Oregon",0,0,0),VALUES("Pennsylvania",0.06,0,0.02),VALUES("Rhode Island",0.07,0,0),VALUES("South Carolina",0.06,0.01,0.02),VALUES("South Dakota",0.04,0.01,0.04),VALUES("Tennessee",0.07,0.02,0.02),VALUES("Texas",0.06,0.01,0.02),VALUES("Utah",0.05,0,0.02),VALUES("Vermont",0.06,0,0.01),VALUES("Virginia",0.05,0,0),VALUES("Washington",0.06,0.02,0.03),VALUES("West Virginia",0.06,0,0.01),VALUES("Wisconsin",0.05,0,0.01),VALUES("Wyoming",0.04,0.01,0.02),VALUES("D.C.",0.05,0,0);
Cập nhật một cột trong toàn bộ các phiên bản ghi
Câu lệnh sau đây cập nhật một cột tuyệt nhất cho toàn bộ các bạn dạng ghi trong bảng taxes:UPDATE sales.taxesSET updated_at = GETDATE();Trong lấy ví dụ này, câu lệnh đã biến hóa các giá trị trong cột updated_at thành thời hạn ngày hệ thống được trả về vị hàm GETDATE().
SQL vps đã gửi ra thông báo sau:
(51 rows affected)Nó tức 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;Đây là đầu ra một phần:

Như chúng ta có thể thấy công dụng đầu ra, cột updated_at vẫn được update với giá trị ngày hiện nay tại.
Cập nhật nhiều cột
Câu lệnh sau đây làm tăng mức thuế suất địa phương về tối đa thêm 2% với mức thuế suất địa phương vừa phải thêm 1% đối với các tiểu bang bao gồm mức thuế suất địa phương về tối đa 1%.
UPDATE sales.taxesSET max_local_tax_rate += 0.02, avg_local_tax_rate += 0.01WHERE max_local_tax_rate = 0.01;Đây là thông báo được trả về vì chưng SQL Server:
(7 rows affected)Nó tức là thuế của 7 tè bang đã có cập nhật.
UPDATE JOIN vào SQL Server
Trong phần này, bạn sẽ tìm gọi cách áp dụng câu lệnh UPDATE JOIN trong SQL Server nhằm thực hiện cập nhật một bảng dựa trên những giá trị xuất phát điểm từ 1 bảng khác bằng mệnh đề JOIN.
Xem thêm: Không Nên Đầu Tư Cấu Hình Máy Tính Đào Bitcoin, Eth, Etc, Zec Mới Nhất
Cú pháp UPDATE JOIN trong SQL Server
Để truy tìm vấn dữ liệu từ các bảng có liên quan, các bạn thường sử dụng các mệnh đề JOIN, INNER JOIN hoặc LEFT JOIN. Trong SQL Server, chúng ta có thể sử dụng các mệnh đề JOIN vào 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 phía trên minh họa cú pháp của mệnh đề UPDATE JOIN:
UPDATE t1SET t1.c1 = t2.c2, t1.c2 = expression, ... FROM t1
Ví dụ về UPDATE JOIN trong SQL Server
Chúng ta hãy xem một trong những ví dụ về việc thực hiện câu lệnh UPDATE JOIN.
Tạo bảng tài liệu mẫu
Đầu tiên, tạo một bảng mới mang tên là sales.targets để lưu trữ các phương châm bán hàng:
DROP TABLE IF EXISTS sales.targets;CREATE TABLE sales.targets( target_id INTPRIMARY 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 phương châm 1, họ sẽ nhận được phần trăm hoa hồng bán hàng 0,2 hoặc 20%, v.v.
Thứ hai, tạo ra một bảng khác mang tên là sales.commissions để lưu trữ hoa hồng cung cấp 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 mặc định 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 lại trữ thông tin định danh nhân viên cấp dưới bán hàng, target_id, base_amount và commission. Bảng này link với bảng sales.targets trải qua cột target_id.
Mục tiêu của shop chúng tôi là tính toán hoa hồng của toàn bộ nhân viên bán sản phẩm dựa trên mục tiêu bán sản phẩm của họ.
Ví dụ về UPDATE INNER JOIN vào SQL Server
Câu lệnh tiếp sau đây sử dụng UPDATE INNER JOIN nhằm tính hoa hồng bán hàng cho tất cả nhân viên chào bán hàng:
UPDATE sales.commissionsSET sales.commissions.commission = c.base_amount * t.percentageFROM sales.commissions cINNER JOIN sales.targets t ON c.target_id = t.target_id;Đây là đầu ra:
(5 rows affected)Nếu bạn truy vấn lại bảng sales.commissions, các bạn sẽ thấy các giá trị trong cột hoa hồng được cập nhật:
SELECT *FROM sales.commissions;

Ví dụ về UPDATE LEFT JOIN vào SQL Server
Giả sử cửa hàng chúng tôi có thêm nhị nhân viên bán sản phẩm mới tham gia với 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%, shop chúng tôi có thể update hoa hồng của tất cả nhân viên bán sản phẩm bằng cách áp dụng UPDATE LEFT JOIN như sau:
UPDATE sales.commissionsSET sales.commissions.commission = c.base_amount * COALESCE(t.percentage,0.1)FROM sales.commissions cLEFT JOIN sales.targets t ON c.target_id = t.target_id;Trong lấy ví dụ này, công ty chúng tôi đã áp dụng COALESCE() nhằm trả về 0,1 trường hợp tỷ lệ phần trăm là NULL.
Lưu ý: nếu như khách hàng sử dụng mệnh đề UPDATE INNER JOIN, chỉ năm mặt hàng của bảng có mục tiêu không đề nghị là NULL sẽ tiến hành cập nhật.Hãy xem tài liệu trong bảng sales.commissions:
SELECT * FROM sales.commissions;Tập công dụng như sau:

Trong gợi ý này, chúng ta đã học cách thực hiện câu lệnh UPDATE vào SQL Server để sửa đổi tài liệu hiện gồm trong một bảng.