Hướng dẫn này giải thích câu lệnh UPDATE của MySQL cùng với cú pháp truy vấn & ví dụ. Bạn cũng sẽ tìm hiểu các biến thể khác nhau của lệnh bảng cập nhật MySQL Show
Như với bất kỳ cơ sở dữ liệu nào khác, chúng ta luôn có nhu cầu cập nhật hoặc sửa đổi hoặc thay đổi dữ liệu hiện có trong các bảng. Trong MySQL, chúng tôi có câu lệnh CẬP NHẬT có thể được sử dụng để cập nhật hoặc sửa đổi dữ liệu trong bảng Sử dụng lệnh này, chúng ta có thể cập nhật một hoặc nhiều trường. Chúng tôi có thể cập nhật các giá trị của một bảng cụ thể tại một thời điểm. Bằng cách sử dụng mệnh đề WHERE, chúng ta có thể chỉ định các điều kiện được sử dụng đặc biệt khi có nhu cầu cập nhật các hàng cụ thể từ một bảng => Nhấp vào đây để xem toàn bộ loạt bài hướng dẫn về MySQL Trước khi tiếp tục, xin lưu ý rằng chúng tôi đang sử dụng MySQL phiên bản 8. 0. Bạn có thể tải về từ đây Bạn sẽ học được gì
Cú pháp bảng CẬP NHẬT MySQLUPDATE table_name SET column1 = new_value1, column2 = new_value2, ... WHERE condition; Giải thích cú pháp
Tuy nhiên, mệnh đề WHERE có ý nghĩa. Nếu không được đề cập hoặc nếu điều kiện không được đặt chính xác thì cả bảng và các hàng không bắt buộc sẽ không được cập nhật Công cụ sửa đổi trong câu lệnh bảng CẬP NHẬTĐược liệt kê dưới đây là các công cụ sửa đổi trong một câu lệnh CẬP NHẬT ƯU TIÊN THẤP. Công cụ sửa đổi này thông báo cho Công cụ MySQL trì hoãn cập nhật cho đến khi không có kết nối nào được đọc từ bảng LÀM LƠ. Công cụ sửa đổi này thông báo cho MySQL Engine để tiếp tục hoạt động CẬP NHẬT ngay cả khi có bất kỳ lỗi nào. Không có hành động cập nhật nào được thực hiện trên các hàng gây ra lỗi Ví dụ CẬP NHẬT MySQLĐưa ra dưới đây là một bảng mẫu được tạo trong MySQL Tên lược đồ. thái bình dương
Tên giản đồ. thái bình dương
Lệnh bảng CẬP NHẬT MySQL#1) MySQL Cập nhật cột đơnBây giờ, hãy tìm hiểu một bản ghi mà chúng tôi muốn cập nhật. Đầu tiên, chúng ta sẽ xem xét một kịch bản trong đó chúng ta phải cập nhật một cột bằng cách sử dụng từ khóa CẬP NHẬT Đây là một nhân viên với mã số nhân viên là 1008 Truy vấn và kết quả tương ứng của nó như sau Hãy cập nhật ID email của nhân viên này từ ob@gmail. com đến oliver. bailey@gmail. com, sử dụng từ khóa CẬP NHẬT CẬP NHẬT. Từ khóa thông báo cho công cụ MySQL rằng câu lệnh nói về Cập nhật bảng. Sau khi thực thi câu lệnh CẬP NHẬT, đầu ra sẽ hiển thị các số liệu thống kê liên quan đến việc thực thi câu lệnh Sau đây là các chi tiết được hiển thị
Để xác minh đầu ra của câu lệnh UPDATE, hãy thực hiện lại câu lệnh SELECT để xem sự thay đổi trong ID email Ảnh chụp bảng trước empNumfirstNamelastNameemaildeptNum1008OliverBaileyob@gmail. com3 Truy vấn UPDATE employees SET email = “[email protected]” WHERE empNum = 1008 AND email = “[email protected]” ; Ảnh chụp bảng sau empNumfirstNamelastNameemaildeptNum1008OliverBaileyoliver. bailey@gmail. com3 #2) MySQL Cập nhật nhiều cộtCú pháp cập nhật nhiều cột bằng câu lệnh UPDATE cũng giống như cú pháp cập nhật một cột. Một câu lệnh SET sẽ có nhiều tên cột cùng với giá trị mới của nó phải được đặt, được phân tách bằng dấu phẩy Hãy xem hàng mà chúng ta cần cập nhật. Hàng có mã số nhân viên là 1003 Tại đây, chúng tôi sẽ thử và cập nhật họ từ “Mary” thành “Margaret” và sau đó là ID email từ ml@gmail. com đến margaret. langaley@gmail. com Sau đây là truy vấn CẬP NHẬT. Hãy quan sát các tên cột được phân tách bằng dấu phẩy Đầu ra của việc thực hiện trên hiển thị số liệu thống kê giống như trong trường hợp trước Sau đây là đầu ra cho cùng một bản ghi sau khi thực hiện câu lệnh CẬP NHẬT Ảnh chụp bảng trước empNumfirstNamelastNameemaildeptNum1003MaryLangleyml@gmail. com2 Truy vấn UPDATE employees SET firstName = “Margaret”, email = “[email protected]” WHERE empNum = 1003 AND firstName = “Mary” AND email = “[email protected]” ; Ảnh chụp bảng sau empNumfirstNamelastNameemaildeptNum1003MargaretLangleymargaret. langley@gmail. com3 #3) Cập nhật MySQL với chức năng REPLACEHãy xem thêm về cách sử dụng hàm REPLACE để CẬP NHẬT một hàng trong bảng. Đây là hồ sơ mục tiêu của chúng tôi mà chúng tôi muốn cập nhật Bản ghi dưới đây dành cho nhân viên mã số 1010. Chúng tôi sẽ nhắm mục tiêu cập nhật ID email từ ja@gmail. đến với jacob. armstrong@gmail. com Hãy sử dụng truy vấn CẬP NHẬT sau đây với hàm REPLACE sẽ cập nhật ID email Sau đây là các tham số được truyền trong hàm REPLACE. Cả 3 tham số đều có tính chất vị trí i. e. thứ tự của các tham số không thể thay đổi Tham số thứ nhất – Chứa tên của ID email. Sau đây là ảnh chụp nhanh của bảng sau khi thực thi câu lệnh CẬP NHẬT Ảnh chụp bảng trước empNumfirstNamelastNameemaildeptNum1010JacobArmstrongja@gmail. com4 Truy vấn UPDATE employees SET email = REPLACE(email, “[email protected]”, [email protected]) WHERE empNum = 1010 ; Ảnh chụp bảng sau empNumfirstNamelastNameemaildeptNum1010JacobArmstrongjacob. armstrong@gmail. com4 #4) CẬP NHẬT MySQL Sử dụng Câu lệnh SELECTTrong loại CẬP NHẬT này, giá trị mới cho cột được cập nhật được tìm nạp bằng câu lệnh CHỌN trong truy vấn con. Vì vậy, hãy lấy một ví dụ ở đây từ bảng "nhân viên" của chúng tôi. Đây là hồ sơ mục tiêu của chúng tôi mà chúng tôi muốn cập nhật Trong trường hợp này, chúng tôi sẽ cập nhật số bộ phận i. e. cột deptNum, sử dụng các bảng phòng ban. Nếu chúng ta nhìn vào bảng các phòng ban, deptNum = 5 tương ứng với Berlin. Hãy di chuyển nhân viên này đến Charlotte tại deptNum = 2 Để đạt được nhiệm vụ này, câu lệnh CẬP NHẬT sau đây được sử dụng Để xác minh đầu ra của câu lệnh CẬP NHẬT của chúng tôi, hãy thực hiện câu lệnh CHỌN Như hình trên, giá trị cho cột deptNum đã được cập nhật thành “2” Ảnh chụp bảng trước empNumfirstNamelastNameemaildeptNum1005PeterLeepl@gmail. com5 deptNumCityCountry1New YorkUnited States2CharlotteUnited States3ChicagoUnited States4LondonEngland5BerlinGermany6MumbaiIndia7RomeItaly Truy vấn <UPDATE employees SET deptNum = (SELECT deptNum FROM departments WHERE city = "Charlotte" ) WHERE empNum = 1005 ; Ảnh chụp bảng sau empNumfirstNamelastNameemaildeptNum1005PeterLeepl@gmail. com2 #5) CẬP NHẬT MySQL Nhiều hàngĐôi khi, chúng tôi có thể gặp phải yêu cầu phải cập nhật một hoặc nhiều cột cho nhiều hàng có giá trị khác nhau Ví dụ: chúng tôi muốn tặng một số tiền thưởng cụ thể cho bộ phận khôn ngoan. e. tất cả nhân viên trong một bộ phận sẽ nhận được một số tiền thưởng cụ thể Cú pháp chung như sau UPDATE TAB1 SET COL2 = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 …. ELSE result1 END; Để giải thích điều này bằng một ví dụ, hãy thêm một cột nữa vào bảng bộ phận. Chúng tôi sẽ thêm cột “tiền thưởng” vào bảng bộ phận. Ý tưởng là ấn định tỷ lệ thưởng cho từng bộ phận và tăng lương cho nhân viên theo tỷ lệ phần trăm đó tương ứng với từng bộ phận Để đạt được điều này, chúng tôi sẽ thực hiện các câu lệnh ALTER sau để thêm một cột ALTER TABLE departments ADD COLUMN bonus decimal(5,2); Sau đây sẽ là cấu trúc bảng đăng những thay đổi trên. Các cột mới sẽ được thêm vào với giá trị NULL Tiếp theo, hãy viết truy vấn CẬP NHẬT sẽ cập nhật phần trăm tiền thưởng cho từng bộ phận Sau khi thực hiện câu lệnh trên, sau đây là ảnh chụp nhanh với các giá trị được cập nhật cho cột Tiền thưởng Ảnh chụp bảng trước deptNumCityCountryBonus1New YorkUnited StatesNULL2CharlotteUnited StatesNULL3ChicagoUnited StatesNULL4LondonEnglandNULL5BerlinGermanyNULL6MumbaiIndiaNULL7RomeItalyNULL Truy vấn UPDATE departments SET bonus = CASE WHEN deptNum = 1 THEN 3.00 WHEN deptNum= 2 THEN 5.00 WHEN deptNum= 3 THEN 8.00 WHEN deptNum= 4 THEN 10.00 WHEN deptNum= 5 THEN 13.00 WHEN deptNum= 6 THEN 15.00 WHEN deptNum= 7 THEN 18.00 END; Ảnh chụp bảng sau deptNumCityCountryBonus1New YorkUnited States32CharlotteUnited States53ChicagoUnited States84LondonEngland105BerlinGermany136MumbaiIndia157RomeItaly18 #6) CẬP NHẬT MySQL Sử dụng Từ khóa INNER JOINTHAM GIA là một trong những từ khóa quan trọng nhất trong các câu lệnh SQL. Thông thường, bạn có thể đã sử dụng nó trong câu lệnh SELECT Về cơ bản có bốn loại câu lệnh THAM GIA
MySQL mang đến cơ hội duy nhất để sử dụng THAM GIA ngay cả trong các câu lệnh CẬP NHẬT để thực hiện cập nhật giữa các bảng. Tuy nhiên, nó chỉ giới hạn ở INNER JOIN và LEFT JOIN Cú pháp chung của câu lệnh CẬP NHẬT sử dụng từ khóa THAM GIA như sau ________số 8
Để giải thích điều này bằng một ví dụ, hãy thêm một cột nữa vào bảng Nhân viên. Chúng ta sẽ thêm cột “lương” vào bảng Nhân viên. Ý tưởng là tăng lương của nhân viên theo giá trị phần trăm tiền thưởng có trong cột tiền thưởng của bảng bộ phận Để đạt được điều này, chúng tôi sẽ thực hiện các câu lệnh ALTER sau để thêm một cột ALTER TABLE employees ADD COLUMN salarydecimal(7,2); Tiếp theo, chúng tôi sẽ điền vào hai trường mới mà chúng tôi đã thêm. Đăng điền các giá trị, sau đây là nội dung của bảng bảng nhân viên empNumfirstNamelastNameemaildeptNumSalary1001AndrewsJackja@gmail. com130001002SchwatzMikems@gmail. com150001003LangleyMargaretmargaret. langley@gmail. com280001004HareraSandrash@gmail. com1100001005LeePeterpl@gmail. com2130001006KeithJennyjk@gmail. com2150001007SchmittJamesjs@gmail. com4180001008BaileyOliveroliver. bailey@gmail. com3210001009BekerHarryhb@gmail. com5240001010ArmstrongJacobjacob. armstrong@gmail. com427000 Bây giờ, hãy sử dụng từ khóa THAM GIA và cập nhật lương của tất cả nhân viên với phần trăm thưởng trong bảng của các phòng ban. Ở đây, deptNum là khóa mà hai bảng sẽ được so khớp Sau đây là ảnh chụp nhanh về lương của nhân viên tính đến thời điểm hiện tại Ảnh chụp nhanh từ bảng Departments như sau Sau đây là truy vấn CẬP NHẬT sẽ cập nhật lương của nhân viên dựa trên phần trăm thưởng trong bảng của các phòng ban dựa trên cột khóa deptNum Bây giờ, hãy xác minh mức lương của từng nhân viên sau khi tăng Nếu bạn so sánh nó với ảnh chụp trước đó, thì bạn có thể dễ dàng hiểu phần trăm thưởng được thêm vào lương Tất cả nhân viên phải cổ vũ Ảnh chụp bảng trước empNumfirstNamelastNameemaildeptNumSalary1001AndrewsJackja@gmail. com130001002SchwatzMikems@gmail. com150001003LangleyMargaretmargaret. langley@gmail. com280001004HareraSandrash@gmail. com1100001005LeePeterpl@gmail. com2130001006KeithJennyjk@gmail. com2150001007SchmittJamesjs@gmail. com4180001008BaileyOliveroliver. bailey@gmail. com3210001009BekerHarryhb@gmail. com5240001010ArmstrongJacobjacob. armstrong@gmail. com427000 deptNumCityCountryBonus1New YorkUnited States32CharlotteUnited States53ChicagoUnited States84LondonEngland105BerlinGermany136MumbaiIndia157RomeItaly18 Truy vấn UPDATE employees SET email = “[email protected]” WHERE empNum = 1008 AND email = “[email protected]” ;0 Ảnh chụp bảng sau empNumfirstNamelastNameemaildeptNumSalary1001AndrewsJackja@gmail. com13182. 71002SchwatzMikems@gmail. com15304. 51003LangleyMargaretmargaret. langley@gmail. com288201004HareraSandrash@gmail. com1106091005LeePeterpl@gmail. com214332. 51006KeithJennyjk@gmail. com216537. 51007SchmittJamesjs@gmail. com4217801008BaileyOliveroliver. bailey@gmail. com324494. 41009BekerHarryhb@gmail. com530645. 61010ArmstrongJacobjacob. armstrong@gmail. com432670 #7) CẬP NHẬT MySQL Sử dụng Từ khóa LEFT JOINNhư đã giải thích trong phần trước, có hai loại THAM GIA được cho phép trong CẬP NHẬT MySQL. Chúng ta đã thấy UPDATE sử dụng INNER JOIN Hãy bắt đầu với CẬP NHẬT bằng cách sử dụng LEFT JOIN Thí dụ Chúng tôi có một nhân viên mới chưa được phân công vào bất kỳ bộ phận nào. Nhưng chúng tôi phải thưởng cho tất cả những người mới thuê 1%. Bây giờ, vì nhân viên mới không được chỉ định cho bất kỳ bộ phận nào, chúng tôi sẽ không thể nhận được bất kỳ thông tin phần trăm tiền thưởng nào từ bảng đó. Trong trường hợp như vậy, chúng tôi sẽ CẬP NHẬT mức lương cho nhân viên mới bằng cách sử dụng LEFT JOIN Để đạt được điều này, hãy thêm một nhân viên mới vào cơ sở dữ liệu nhân viên UPDATE employees SET email = “[email protected]” WHERE empNum = 1008 AND email = “[email protected]” ;1 Sau đây là bản ghi mới mà chúng tôi đã thêm bảng nhân viên empNumfirstNamelastNameemaildeptNumSalary1001AndrewsJackja@gmail. com131831002SchwatzMikems@gmail. com153051003LangleyMargaretmargaret. langley@gmail. com288201004HareraSandrash@gmail. com1106091005LeePeterpl@gmail. com2143331006KeithJennyjk@gmail. com2165381007SchmittJamesjs@gmail. com4217801008BaileyOliveroliver. bailey@gmail. com3244941009BekerHarryhb@gmail. com5306461010ArmstrongJacobjacob. armstrong@gmail. com4326701011HanksTomth@gmail. comNULL10000 Tiếp theo, chúng tôi sẽ thưởng cho Tom 1% trên số tiền lương của anh ấy bằng cách sử dụng câu lệnh UPDATE với mệnh đề LEFT JOIN Đưa ra dưới đây là mức lương của TOM sau khi tăng Nếu so với ảnh chụp trước thì bạn dễ hiểu % thưởng thêm vào lương Ảnh chụp bảng trước empNumfirstNamelastNameemaildeptNumSalary1011TomHanksth@gmail. comNULL10000 Truy vấn UPDATE employees SET email = “[email protected]” WHERE empNum = 1008 AND email = “[email protected]” ;2 Ảnh chụp bảng sau empNumfirstNamelastNameemaildeptNumSalary1011TomHanksth@gmail. comNULL10100 Nên đọc =>> Tham gia MySQL Câu hỏi thường gặp và câu trả lờiQ #1) Làm cách nào để cập nhật các thuộc tính trong MySQL? Câu trả lời. Chúng ta có thể cập nhật (các) thuộc tính bằng cách sử dụng câu lệnh CẬP NHẬT của MySQL, với câu lệnh bắt đầu bằng từ khóa CẬP NHẬT theo sau là tên bảng. Tiếp theo là mệnh đề SET theo sau là tên cột và mệnh đề WHERE Q #2) Làm cách nào để bạn cập nhật nhiều bản ghi trong MySQL? Câu trả lời. Như mô tả ở trên, trong phần “Cập nhật nhiều hàng”, chúng ta có thể cập nhật nhiều hàng cho một hoặc nhiều cột có giá trị giống nhau hoặc khác nhau bằng cách sử dụng câu lệnh CASE Q #3) Chúng tôi có thể sử dụng THAM GIA trong truy vấn Cập nhật trong MySQL không? Câu trả lời. Có, MySQL cho phép sử dụng THAM GIA trong các câu lệnh CẬP NHẬT. Tuy nhiên, nó chỉ giới hạn ở INNER và LEFT JOIN Làm cách nào để CẬP NHẬT dữ liệu trong MySQL?Truy vấn CẬP NHẬT MySQL là một câu lệnh DML được sử dụng để sửa đổi dữ liệu của bảng MySQL trong cơ sở dữ liệu. . CẬP NHẬT tên_bảng SET cột_name1 = new-value1, column_name2=new-value2, [Mệnh đề WHERE] Lệnh CẬP NHẬT trong MySQL là gì?Cú pháp lệnh cập nhật MySQL
. SET `column_name` = `new_value' là tên và giá trị của các trường bị ảnh hưởng bởi truy vấn cập nhật. UPDATE `table_name` is the command that tells MySQL to update the data in a table . SET `column_name` = `new_value' are the names and values of the fields to be affected by the update query.
Làm cách nào để CẬP NHẬT và chọn trong cùng một truy vấn trong MySQL?Không cần khai báo. Để chọn giá trị của nó, chỉ cần thực hiện. SELECT @cur_value; Nếu câu lệnh CẬP NHẬT này được thực thi trong một thủ tục được lưu trữ, bạn có thể khai báo một biến cục bộ @cur_value và sử dụng nó sau câu lệnh CẬP NHẬT ( .
3 lệnh CẬP NHẬT trong SQL là gì?3 lệnh cập nhật trong SQL là gì? . CHÈN - thêm một hoặc nhiều bản ghi trong bảng CẬP NHẬT - sửa đổi một bản ghi hiện có XÓA - xóa một bản ghi khỏi cơ sở dữ liệu |