MySQL DELETE Query: Cách xóa một hàng khỏi bảng

Truy vấn XÓA là gì?

MySQL Xóa bỏ lệnh được sử dụng để xóa các hàng không còn cần thiết trong các bảng cơ sở dữ liệu. Nó xóa toàn bộ hàng khỏi bảng và trả về số lượng hàng đã xóa. Lệnh xóa có ích để xóa dữ liệu tạm thời hoặc lỗi thời khỏi cơ sở dữ liệu của bạn.

Truy vấn Xóa trong MySQL có thể xóa nhiều hàng khỏi một bảng trong một truy vấn. Điều này tỏ ra có lợi khi loại bỏ số lượng lớn hàng khỏi bảng cơ sở dữ liệu.

Một lần Xóa hàng trong MySQL hàng đã bị xóa, không thể khôi phục được. Do đó, chúng tôi khuyến cáo bạn nên sao lưu cơ sở dữ liệu trước khi xóa bất kỳ dữ liệu nào khỏi cơ sở dữ liệu. Điều này có thể cho phép bạn khôi phục cơ sở dữ liệu và xem dữ liệu sau này nếu cần.

Cách xóa một hàng trong MySQL

Để xóa một hàng trong MySQL, câu lệnh DELETE FROM được sử dụng:

DELETE FROM `table_name` [WHERE condition];

tại ĐÂY

  • XÓA TỪ `table_name` kể MySQL máy chủ để xóa các hàng khỏi bảng ..
  • [Điều kiện WHERE] là tùy chọn và được sử dụng để đặt bộ lọc hạn chế số lượng hàng bị ảnh hưởng bởi cú pháp DELETE MySQL truy vấn hàng.

Nếu Mệnh đề WHERE không được sử dụng trong MySQL XÓA truy vấn, thì tất cả các hàng trong một bảng nhất định sẽ bị xóa.

Ví dụ về MySQL Xóa truy vấn

Trước khi chúng ta thảo luận chi tiết hơn về câu lệnh SQL DELETE, hãy chèn một số dữ liệu mẫu vào bảng movies để làm việc.

INSERT INTO  `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 7);
INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8);
INSERT INTO  movies (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);

Việc thực thi đoạn script trên sẽ thêm ba (3) phim vào bảng phim. Trước khi chúng ta đi sâu hơn vào bài học, hãy lấy tất cả các bộ phim trong bảng của chúng ta. Kịch bản hiển thị dưới đây thực hiện điều đó.

SELECT * FROM `movies`;

Thực hiện đoạn mã trên sẽ cho chúng ta kết quả sau.

movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
18 The Great Dictator Chalie Chaplie 1920 7
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

Giả sử rằng thư viện video Myflix không còn muốn cho các thành viên thuê “The Great Dictator” nữa và họ muốn xóa nó khỏi cơ sở dữ liệu. Id phim của nó là 18, chúng ta có thể sử dụng đoạn script hiển thị bên dưới để xóa hàng khỏi bảng MySQL thí dụ.

DELETE FROM `movies` WHERE `movie_id` = 18;

Thực thi đoạn script trên trong MySQL bàn làm việc chống lại Myflix sẽ xóa phim có id 18 khỏi bảng cơ sở dữ liệu.

Chúng ta hãy xem trạng thái hiện tại của bảng phim.

SELECT * FROM `movies`;
movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

LƯU Ý:

  • phim có id 18 chưa được trả về trong tập kết quả truy vấn.
  • bạn không thể xóa một cột cho một bảng. Bạn có thể xóa toàn bộ một hàng.

Giả sử chúng ta có một danh sách các phim muốn xóa. Chúng ta có thể sử dụng mệnh đề WHERE cùng với IN.

DELETE FROM `movies` WHERE `movie_id`  IN (20,21);

Việc thực thi đoạn script trên sẽ xóa phim có ID 20 và 21 khỏi bảng phim của chúng tôi.

Tổng kết

  • Lệnh Xóa trong MySQL, được sử dụng để xóa dữ liệu không còn cần thiết khỏi bảng.
  • “Mệnh đề WHERE” được sử dụng để giới hạn số lượng hàng bị ảnh hưởng bởi truy vấn DELETE MySQL chỉ huy.
  • Dữ liệu đã bị xóa sẽ không thể phục hồi được nên bạn nên sao lưu trước khi xóa dữ liệu.

Tóm tắt bài viết này với: