Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cập nhật truy vấn để cập nhật hàng trong MySQL

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 hoặc dữ liệu của một bảng trong MySQL.

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 kịch bản lý tưởng. Chúng ta có thể bỏ qua việc sử dụng WHERE trong khi sử dụng lệnh UPDATE, nhưng nó sẽ dẫn đến các vấn đề về hiệu suất trong trường hợp dữ liệu bảng lớn.

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiệu suất MySQL:Cách tận dụng việc lập chỉ mục cơ sở dữ liệu MySQL

  2. Chọn các cột trên các cơ sở dữ liệu khác nhau

  3. Sự khác biệt giữa CHỌN VÀO VÀ CHÈN VÀO trong MySQL

  4. Điền JFreechart TimeSeriesCollection từ Mysql DB?

  5. Cách xóa các ký tự hàng đầu không mong muốn khỏi chuỗi trong MySQL