Hướng dẫn này là một phần của loạt bài Tìm hiểu Truy vấn SQL Cơ bản Sử dụng MySQL. Trong hướng dẫn này, chúng ta sẽ thảo luận về các truy vấn SQL để cập nhật các hàng
Cập nhật truy vấn
Lệnh UPDATE có thể được sử dụng để sửa đổi hoặc cập nhật các hàng của bảng bằng từ khóa SET. Trong trường hợp bạn đăng nhập từ xa vào cơ sở dữ liệu, bạn cũng sẽ cần đặc quyền CẬP NHẬT cho bảng để đọc các hàng từ bảng.
# UPDATE - Syntax
UPDATE `table_name` SET `column_1` = <value>, `column_2` = <value> ... [WHERE <single or multiple filter conditions>];
Giải thích truy vấn
Lệnh MySQL UPDATE có thể được sử dụng để sửa đổi các hàng hoặc dữ liệu của tên bảng đã cho trong đó tên cột, giá trị hàng và tên của bảng là bắt buộc. BỘ từ khóa là bắt buộc để đặt giá trị cột mới.
Chúng tôi phải chỉ định ít nhất một cột và đó là giá trị mới trong khi sử dụng truy vấn CẬP NHẬT. Giá trị phải được đặt trong dấu nháy đơn trong trường hợp đó là giá trị chuỗi.
Chúng ta cũng cần chỉ định các điều kiện được xem xét trong khi cập nhật các hàng. Sử dụng mệnh đề WHERE với lệnh UPDATE là bắt buộc trong đó chúng ta cần cập nhật có chọn lọc các hàng
Ví dụ
Phần này cung cấp các ví dụ để cập nhật các hàng của bảng bằng lệnh UPDATE. Sử dụng truy vấn được đề cập bên dưới để tạo bảng người dùng có id, tên, họ và các cột hoạt động để lưu trữ dữ liệu người dùng.
# Create the User Table
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
`last_name` VARCHAR(45),
`active` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`));
Truy vấn được đề cập bên dưới có thể được sử dụng để chèn dữ liệu vào bảng người dùng.
# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 1, 'John', 'Smith', 1 ),
( 2, 'Rick', 'Jones', 1 ),
( 3, 'Catherine', 'Ponting', 0 ),
( 4, 'Harsh', 'Upadhyay', 1 ),
( 5, 'Tajwinder', 'Singh', 0 );
Truy vấn đề cập ở trên sẽ chèn 5 hàng trong bảng có id, tên, họ và các cột hiện hoạt để đại diện cho 5 người dùng khác nhau.
Bây giờ chúng tôi sẽ cập nhật dữ liệu do chúng tôi chèn vào bảng người dùng. Nó có thể được thực hiện bằng cách sử dụng lệnh UPDATE như hình dưới đây.
# UPDATE - Activate all the inactive users - without key column
UPDATE `user` SET `active` = 1 WHERE `active` = 0;
# Notes - Workbench - You might need to disable safe updates in case the primary key is not used in WHERE clause
SET SQL_SAFE_UPDATES = 0;
UPDATE `user` SET `active` = 1 WHERE `active` = 0;
SET SQL_SAFE_UPDATES = 0;
# Result
1 John Smith 1
2 Rick Jones 1
3 Catherine Ponting 1
4 Harsh Upadhyay 1
5 Tajwinder Singh 1
# UPDATE - Deactivate selective users - with key column
UPDATE `user` SET `active` = 0 WHERE `user_id` = 1;
UPDATE `user` SET `active` = 0 WHERE `user_id` IN( 3, 5 );
# Result
1 John Smith 0
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0
Các truy vấn được đề cập ở trên cập nhật bảng người dùng bằng mệnh đề WHERE. Các hàng trong bảng sẽ được cập nhật trong trường hợp hàng đáp ứng các điều kiện đã cho.
Chúng tôi cũng có thể cập nhật nhiều giá trị cột như được hiển thị bên dưới.
# UPDATE - Modify first name and last name of first user
UPDATE `user` SET `first_name` = 'Roy', `last_name` = 'Jordan' WHERE `user_id` = 1;
# Result
1 Roy Jordan 0
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0
Đây là cách chúng tôi có thể sửa đổi dữ liệu được lưu trữ trong các bảng MySQL.