I- With Grant Option
5. PHẮT BIỂU SQL
5.8. Phát biểu SQLd ạng UPDATE
P h á t biểu SQ L dạng UPDATE dùng cập n h ậ t lại dữ liệu đã tồn tạ i trong bảng. Khi UPDATE
dùng cập n h ậ t dữ liệu cho m ột m ẩu tin chỉ định nào đó thường UPDATE sử dụng chung với m ệnh đề
WHERE.
Nếu cần cập n h ậ t t ấ t cả các m ẩu tin trong bảng bạn có th ể bỏ m ệnh đề WHERE. P h á t biểu này có cấu trúc như sau:
/* nếu cập nhất giá trị cụ th ể */
Update <table name>
Set <column>=<value>, [<column>=<value>] [where crestrictive conditions>]
/* nếu cập nhất giá trị là kết quả trả về từ ph á t biểu
select trèn một hay nhiều bảng khác * /
Update <table name>
Set <column>=<select . . from tablename where . . - > [where -¡restrictive conditions:»]
UPDATE có th ể ản h hưởng đến nhiều bảng, nhưng cập n h ấ t giá trị chỉ có hiệu lực trê n bảng đó, bạn có th ể tham khảo p hần này trong chương k ế tiếp J O IN TABLE.
Cập n h ậ t giá tr ị cụ th ể vào m ột hay nhiều cột m inh hoạ trong ví dụ 8-18 sau:
V í dụ 8-18: UPDATE tr ê n c á c c ộ t d ữ liệ u từ g iá trị c ụ th ể
/* cập nhật cột với giá trị cụ th ể * /
Update tblCustomers
Set CustName= 'Cong ty TNHH Coca cola Vietnam' Where CustID= ' 12 '
/* cập nhật m ột cột với giá trị cột khác trong bảng tblOrderDetails* /
Update tblOrders
Set Amount = Amount* .01, TotalAmount=Amount*0.1 Where Month (OrderDate) = 12
/* cập nhật m ột cột với giá trị từ bảng khát* I
/* cập nhật cột Price với giá trị từ cột Cost của băng tblltem s, khai báo sau chi đúng trong My SQ L 4.1 trở về sau* I
Set Price=
(select distinct Cost] from tblltems
where ItemID=tblOrderDetails.ItemID) Where Price<1000
/* cập nhật một cột với giá trị cụ thề với điều kiện từ bảng khác,, khai báo sau chỉ đúng trong MySQL 4.1 trở về sau */
Update tblOrderDetails Set Price= Price*10, Amount= Qtty* (Price+1) Where ItemID in
(select distinct ItemID from tblOrderDetails where Price>1000)