Làm cách nào để xóa dữ liệu khỏi cơ sở dữ liệu MySQL?

MySQL là cơ sở dữ liệu nguồn mở phổ biến nhất thế giới, được công nhận về tốc độ và độ tin cậy. Bài viết này xem xét cách xóa tất cả dữ liệu khỏi bảng cơ sở dữ liệu MySQL và cách nó ảnh hưởng đến các trường gia tăng tự động

Xóa và cắt bớt

Có hai cách để xóa tất cả dữ liệu trong bảng cơ sở dữ liệu MySQL

TRUNCATE TABLE tablename; Thao tác này sẽ xóa tất cả dữ liệu trong bảng rất nhanh. Trong MySQL, bảng thực sự bị loại bỏ và được tạo lại, do đó tốc độ của truy vấn. Số hàng đã xóa cho các bảng MyISAM được trả về bằng 0;

DELETE FROM tablename; Điều này cũng xóa tất cả dữ liệu trong bảng, nhưng không nhanh bằng cách sử dụng phương pháp “TRUNCATE TABLE”. Trong MySQL> = 4. 0 số hàng bị xóa được trả về; . 23 số trả về luôn bằng 0

Cột tăng tự động cho bảng MyISAM

Nếu bạn có cột khóa chính tăng tự động trong bảng MyISAM, kết quả sẽ hơi khác một chút tùy thuộc vào phương pháp xóa bạn sử dụng. Khi sử dụng phương pháp “TRUNCATE TABLE”, giá trị hạt giống gia tăng tự động sẽ được đặt lại về 1. Khi sử dụng phương pháp “XÓA TỪ”, hạt tăng tự động sẽ được giữ nguyên như trước đây (ví dụ: nếu trường tăng tự động của bản ghi được chèn lần cuối là 123 thì bản ghi được chèn tiếp theo sẽ được đặt thành 124)

Lưu ý rằng điều này đúng với MySQL >= 4. 0; . 23 TRUNCATE hoạt động giống như XÓA, điều đó có nghĩa là hạt giống tăng tự động không được đặt lại. Tôi hiện không có 3. 23 cơ sở dữ liệu được thiết lập để kiểm tra nên không thể xác nhận điều này

Cột tăng tự động cho bảng INNODB

Đối với các bảng INNODB, cho dù bạn sử dụng phương pháp “TRUNCATE TABLE” hay “DELETE FROM”, trường tăng tự động sẽ không được đặt lại. Nếu bạn đã chèn 5 bản ghi vào một bảng mới, sau đó xóa tất cả các bản ghi và chèn một bản ghi khác, trường sẽ có giá trị là 6, bất kể bạn đã sử dụng phương pháp nào

Cập nhật ngày 17 tháng 2 năm 2009. Ban đầu tôi đã viết bài đăng này khi MySQL 4. 0 là phiên bản hiện tại. Bây giờ tôi vừa kiểm tra phần trên trên bảng INNODB bằng MySQL 5. 0 và sử dụng TRUNCATE sẽ đặt lại trường tăng tự động về mặc định. Vì vậy, hành vi đã thay đổi tại một số điểm hoặc tôi đã sai khi đưa ra tuyên bố trên

Bạn có thực sự chắc chắn muốn xóa tất cả dữ liệu?

Trước khi xóa tất cả dữ liệu trong cơ sở dữ liệu, bạn nên đảm bảo rằng bạn thực sự có ý định xóa tất cả dữ liệu. Trước tiên, nó thường trả tiền cho “CHỌN * TỪ tên bảng” hoặc “CHỌN COUNT(*) TỪ tên bảng” trước khi làm như vậy để kiểm tra xem có thực sự an toàn khi xóa tất cả dữ liệu. Có thể bạn thực sự muốn làm điều gì đó như “XÓA TỪ tên bảng WHERE foo = ‘bar'” để thay thế

Lệnh Xóa MySQL được sử dụng để xóa các hàng không còn cần thiết khỏi 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 chứng tỏ là lợi thế khi xóa số lượng lớn 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ể khôi phục được. Do đó, chúng tôi khuyên 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];

NƠI ĐÂY

  • XÓA TỪ `tên_bảng` 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ố lượng hàng bị ảnh hưởng bởi cú pháp DELETE truy vấn hàng MySQL

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

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

Trước khi 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 phim để làm việc với

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 thi đoạn mã 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 của mình, 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ị bên dưới thực hiện điều đó

SELECT * FROM `movies`;

Thực thi đoạn script trên cho chúng ta kết quả như 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 tập lệnh hiển thị bên dưới để xóa hàng khỏi bảng Ví dụ về MySQL

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

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

Làm cách nào để xóa dữ liệu khỏi cơ sở dữ liệu trong MySQL?

Cú pháp XÓA . Cẩn thận khi xóa bản ghi trong bảng. Lưu ý mệnh đề WHERE trong câu lệnh DELETE. Mệnh đề WHERE chỉ định (những) bản ghi nào sẽ bị xóa. DELETE FROM table_name WHERE condition; Note: Be careful when deleting records in a table! Notice the WHERE clause in the DELETE statement. The WHERE clause specifies which record(s) should be deleted.

Làm cách nào để xóa tất cả dữ liệu khỏi bảng trong MySQL?

Câu lệnh TRUNCATE TABLE được sử dụng để xóa tất cả các bản ghi khỏi một bảng trong MySQL. Nó thực hiện chức năng tương tự như câu lệnh DELETE không có mệnh đề WHERE. Cảnh báo. Nếu bạn cắt bớt một bảng, câu lệnh TRUNCATE TABLE không thể được khôi phục

Bạn có thể XÓA dữ liệu khỏi cơ sở dữ liệu không?

Mở rộng Cơ sở dữ liệu, bấm chuột phải vào cơ sở dữ liệu để xóa tệp, rồi bấm Thuộc tính. Chọn trang Tệp. Trong lưới Tệp cơ sở dữ liệu, chọn tệp cần xóa rồi nhấp vào Xóa. Nhấp vào OK