Câu Lệnh Update Trong Sql Server

     

Trong lý giải này, các bạn sẽ tìm hiểu cách sử dụng câu lệnh UPDATE trong SQL server để đổi khác dữ liệu hiện bao gồm 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 có trong một bảng, bạn sử dụng cú pháp câu lệnh UPDATE như sau:

UPDATE table_nameSET c1 = v1, c2 = v2, ... Công nhân = vnTrong cú pháp này:

Đầu tiên, hướng dẫn và 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, ... Công nhân và những giá trị v1, v2, ... Vn sẽ tiến hành cập nhật.

Ví dụ về UPDATE trong SQL Server

Đầu tiên, shop chúng tôi sẽ chế tạo ra một bảng mới có tên taxes nhằm 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, tiến hành 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),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 tất cả các phiên bản ghi

Câu lệnh sau đây update một cột nhất cho toàn bộ các phiên bản ghi trong bảng taxes:

UPDATE sales.taxesSET updated_at = GETDATE();Trong ví dụ như này, câu lệnh đã thay đổi các quý giá trong cột updated_at thành thời hạn ngày hệ thống được trả về vày hàm GETDATE().

SQL vps đã chuyển ra thông tin sau:

(51 rows affected)Nó có nghĩa là 51 bản ghi sẽ được cập nhật thành công.

Hãy xác minh update trên như sau:

SELECT *FROM sales.taxes;Đây là áp ra output một phần:

*

Như chúng ta có thể thấy hiệu quả đầu ra, cột updated_at vẫn được cập nhật với quý giá ngày hiện nay tại.

Cập nhật nhiều cột

Câu lệnh tiếp sau đây làm tăng nấc thuế suất địa phương về tối đa thêm 2% cùng mức thuế suất địa phương vừa phải thêm 1% đối với các tiểu bang 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ì SQL Server:

(7 rows affected)Nó tức là thuế của 7 tiểu bang đã có được cập nhật.

UPDATE JOIN trong SQL Server

Trong phần này, bạn sẽ tìm hiểu cách sử dụng câu lệnh UPDATE JOIN trong SQL Server để thực hiện update một bảng dựa trên những giá trị xuất phát điểm từ một bảng khác bằng mệnh đề JOIN.

Xem thêm: Mẫu Đơn Xin Nghỉ Phép Tiếng Anh Mới Nhất Chuẩn Cho Nhân Viên

Cú pháp UPDATE JOIN trong SQL Server

Để truy tìm vấn dữ liệu từ các bảng bao gồm liên quan, các bạn thường sử dụng các mệnh đề JOIN, INNER JOIN hoặc LEFT JOIN. Vào SQL Server, chúng ta cũng có thể sử dụng những mệnh đề JOIN trong câu lệnh UPDATE để thực hiện update một bảng dựa trên các giá trị xuất phát 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 JOIN t2 ON join_predicateWHERE where_predicate;Trong cú pháp này:

Đầu tiên, chỉ định và hướng dẫn tên của bảng (t1) mà bạn có nhu cầu cập nhật trong mệnh đề UPDATE.Thứ hai, chỉ định giá trị mới cho từng cột của bảng được cập nhật.Thứ ba, một lần tiếp nữa chỉ định bảng mà bạn có nhu cầu cập nhật vào mệnh đề FROM.

Ví dụ về UPDATE JOIN vào SQL Server

Chúng ta hãy xem một trong những ví dụ về việc áp 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 để tàng 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 mặc định 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 kim chỉ nam 1, họ vẫn nhận được tỷ lệ hoa hồng bán hàng 0,2 hoặc 20%, v.v.

Thứ hai, chế 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 mặc định 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 cùng commission. Bảng này links 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à giám sát và đo lường hoa hồng của toàn bộ nhân viên bán sản phẩm dựa bên trên mục tiêu bán hàng 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 để tính hoa hồng bán hàng cho tất cả nhân viên cung cấp 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 các bạn truy vấn lại bảng sales.commissions, bạn sẽ thấy các giá trị trong cột hoả hồng được cập nhật:

SELECT *FROM sales.commissions;

*

Ví dụ về UPDATE LEFT JOIN vào SQL Server

Giả sử chúng tôi có thêm nhì nhân viên bán sản phẩm 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 mang định rằng hoa hồng mang đến nhân viên bán sản phẩm mới là 0,1 hoặc 10%, shop 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 thực hiện 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 đã thực hiện COALESCE() để trả về 0,1 nếu như tỷ lệ phần trăm là NULL.

Lưu ý: nếu như bạn 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 nên là NULL sẽ được cập nhật.

Xem thêm: Mẹ Đảm Gợi Ý 30 Mâm Cơm Gia Đình Đơn Giản Cho 2 Người, 30 Mâm Cơm Giá Chưa Tới 50 Nghìn Cho Cả Tháng

Hãy xem dữ liệu trong bảng sales.commissions:

SELECT * FROM sales.commissions;Tập hiệu quả như sau:

*

Trong chỉ dẫn này, chúng ta đã học tập cách áp dụng câu lệnh UPDATE trong SQL Server nhằm sửa đổi tài liệu hiện tất cả trong một bảng.