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

Mục lục:

Anonim

Truy vấn DELETE là gì?

Lệnh MySQL DELETE được sử dụng để xóa các hàng không còn được yêu cầu khỏi 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 các hàng đã xóa. Lệnh Delete rất hữu í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ơn một hàng khỏi bảng trong một truy vấn duy nhất. Điều này chứng tỏ là lợi thế khi loại bỏ số lượng lớn các hàng khỏi bảng cơ sở dữ liệu.

Khi một hàng Xóa trong hàng MySQL đã bị xóa, nó không thể được khôi phục. Do đó, bạn nên thực hiệ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 yêu cầu.

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];

ĐÂY

  • DELETE FROM `table_name` yêu cầu máy chủ MySQL 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ố hàng bị ảnh hưởng bởi truy vấn hàng XÓA MySQL.

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

Ví dụ về MySQL Delete Query

Trước khi chúng ta đi vào thảo luận chi tiết hơn về lệnh DELETE, hãy chèn một số dữ liệu mẫu vào bảng phim để 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);

Thực hiện kịch bản trên 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 của chúng ta, chúng ta hãy lấy tất cả các bộ phim trong bảng của chúng ta. Tập lệnh hiển thị bên dưới thực hiện điều đó.

SELECT * FROM `movies`;

Việc thực thi script trên cho chúng ta kết quả sau.

 
movie_id itle 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 tập lệnh hiển thị bên dưới để xóa hàng của nó khỏi bảng phim.

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

Việc thực thi tập lệnh trên trong MySQL WorkBench trên Myflix sẽ xóa phim có id 18 khỏi bảng cơ sở dữ liệu.

Chúng ta hãy xem tình trạng 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

GHI CHÚ:

  • 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 duy nhất cho một bảng. Bạn có thể xóa toàn bộ 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 tập lệnh trên sẽ xóa các phim có ID 20 và 21 khỏi bảng phim của chúng tôi.

Tóm lược

  • Lệnh xóa đượ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ố hàng bị ảnh hưởng bởi truy vấn DELETE.
  • Sau khi dữ liệu đã bị xóa, nó sẽ không thể khôi phục được, do đó chúng tôi khuyên bạn nên sao lưu trước khi xóa dữ liệu.