Mysql xóa mục

Câu lệnh DELETE của MySQL được sử dụng để xóa các bản ghi khỏi bảng MySQL không còn cần thiết trong cơ sở dữ liệu. Truy vấn này trong MySQL xóa toàn bộ hàng khỏi bảng và tạo ra số lượng hàng đã xóa. Nó cũng cho phép chúng tôi xóa nhiều bản ghi khỏi bảng trong một truy vấn, điều này có lợi khi xóa số lượng lớn bản ghi khỏi bảng. Bằng cách sử dụng câu lệnh xóa, chúng ta cũng có thể xóa dữ liệu dựa trên các điều kiện

Khi chúng tôi xóa bản ghi bằng truy vấn này, chúng tôi không thể khôi phục nó. Do đó, trước khi xóa bất kỳ bản ghi nào khỏi bảng, bạn nên tạo bản sao lưu cơ sở dữ liệu của mình. Các bản sao lưu cơ sở dữ liệu cho phép chúng tôi khôi phục dữ liệu bất cứ khi nào chúng tôi cần trong tương lai

cú pháp

Sau đây là cú pháp minh họa cách sử dụng câu lệnh DELETE

Trong câu lệnh trên, trước tiên chúng ta phải chỉ định tên bảng mà chúng ta muốn xóa dữ liệu. Thứ hai, chúng ta phải chỉ định điều kiện để xóa các bản ghi trong mệnh đề WHERE, đây là tùy chọn. Nếu chúng ta bỏ qua mệnh đề WHERE trong câu lệnh, truy vấn này sẽ xóa toàn bộ bản ghi khỏi bảng cơ sở dữ liệu

Nếu chúng ta muốn xóa các bản ghi khỏi nhiều bảng bằng một truy vấn DELETE, chúng ta phải thêm mệnh đề THAM GIA với câu lệnh DELETE

Nếu chúng ta muốn xóa tất cả các bản ghi khỏi một bảng mà không biết số hàng đã xóa, chúng ta phải sử dụng câu lệnh TRUNCATE TABLE để có hiệu suất tốt hơn

Hãy cho chúng tôi hiểu cách câu lệnh DELETE hoạt động trong MySQL thông qua các ví dụ khác nhau

Các ví dụ về câu lệnh DELETE của MySQL

Ở đây, chúng ta sẽ sử dụng bảng "Nhân viên" và "Thanh toán" để trình diễn câu lệnh DELETE. Giả sử các bảng Nhân viên và Thanh toán chứa dữ liệu sau

Mysql xóa mục

Mysql xóa mục

Nếu chúng ta muốn xóa một nhân viên có emp_id là 107, chúng ta nên sử dụng câu lệnh DELETE với mệnh đề WHERE. Xem truy vấn bên dưới

Sau khi thực hiện câu truy vấn sẽ trả về kết quả như hình bên dưới. Sau khi bản ghi bị xóa, hãy xác minh bảng bằng cách sử dụng câu lệnh CHỌN

Mysql xóa mục

Nếu chúng ta muốn xóa tất cả các bản ghi khỏi bảng thì không cần sử dụng mệnh đề WHERE với câu lệnh DELETE. Xem đoạn mã dưới đây và đầu ra

Mysql xóa mục

Ở kết quả trên, chúng ta có thể thấy rằng sau khi xóa tất cả các hàng, bảng Nhân viên sẽ trống. Điều đó có nghĩa là không có bản ghi nào trong bảng đã chọn

Mệnh đề DELETE và GIỚI HẠN của MySQL

Mệnh đề Giới hạn MySQL được sử dụng để hạn chế số lượng hàng trả về từ tập kết quả, thay vì tìm nạp toàn bộ bản ghi trong bảng. Đôi khi chúng ta muốn giới hạn số hàng bị xóa khỏi bảng;

Cần lưu ý rằng thứ tự các hàng trong bảng MySQL không được chỉ định. Do đó, chúng ta nên luôn sử dụng mệnh đề ORDER BY trong khi sử dụng mệnh đề LIMIT

Ví dụ: trước tiên, truy vấn sau sắp xếp nhân viên theo tên của họ theo thứ tự bảng chữ cái và xóa ba nhân viên đầu tiên khỏi bảng

Nó sẽ cho đầu ra dưới đây

Mysql xóa mục

Mệnh đề XÓA và THAM GIA của MySQL

Mệnh đề THAM GIA được sử dụng để thêm hai hoặc nhiều bảng trong MySQL. Chúng tôi sẽ thêm mệnh đề THAM GIA với câu lệnh DELETE bất cứ khi nào chúng tôi muốn xóa các bản ghi khỏi nhiều bảng trong một truy vấn. Xem truy vấn bên dưới

Trước hết, bạn phải có một số dữ liệu trong lược đồ cơ sở dữ liệu của mình để thực hiện các truy vấn trên đó. Hãy tạo một bảng có tên 'sinh viên' trong cơ sở dữ liệu 'dữ liệu' bằng cách sử dụng truy vấn CREATE trong MYSQL Workbench hoặc Máy khách dòng lệnh. Bảng 'sinh viên' có sáu cột. 'id', 'firstname', 'lastname', 'email', 'reg_date' và 'class'. Chúng tôi sẽ thêm các giá trị vào các cột của nó bằng cách sử dụng chế độ xem lưới như bên dưới và nhấp vào nút 'Áp dụng' để lưu các thay đổi. Bây giờ bạn có thể thực hiện bất kỳ cập nhật nào trên các bản ghi này

Mysql xóa mục

Xóa qua Giao diện Workbench

Một phương pháp rất đơn giản để xóa hàng/các hàng khỏi bảng MySQL là thông qua chế độ xem lưới bàn làm việc vì chúng ta có một bảng 'sinh viên' với mười bản ghi trong đó. Để xóa một hàng khỏi bảng, bạn phải chọn hàng cụ thể và nhấn biểu tượng xóa hàng từ cửa sổ lưới vì chúng tôi đã chọn hàng thứ 10 và nhấn biểu tượng được đánh dấu bên dưới

Mysql xóa mục

Sau khi nhấn vào biểu tượng xóa, bạn có thể thấy rằng hàng thứ 10 và bản ghi của nó đã bị xóa khỏi bảng 'sinh viên'. Muốn xóa nhiều hàng phải chọn liên tiếp nhiều hàng

Mysql xóa mục

Xóa một hàng qua dòng lệnh

Một phương pháp đơn giản khác để xóa một hàng khỏi lược đồ MySQL là thông qua ứng dụng khách dòng lệnh. Mở ứng dụng khách dòng lệnh MySQL trong 'MySql' mới được cài đặt thông qua nút 'cửa sổ'. Trước hết, kiểm tra và hiển thị tất cả các bản ghi của bảng ‘student’ bằng cách sử dụng lệnh ‘SELECT’ như bên dưới

>> CHỌN * TỪ dữ liệu. sinh viên ĐẶT HÀNG THEO id;

Mysql xóa mục

Ví dụ 01. Sử dụng một điều kiện trong mệnh đề WHERE
Hãy xóa một hàng bằng cách sử dụng mệnh đề ‘WHERE’ trong truy vấn ‘DELETE’. Chúng tôi đang xóa hàng có 'lastname = Waleed', là hàng số 10 như trên. Hãy thử nó như.

>> XÓA KHỎI dữ liệu. sinh viên WHERE lastname=’Waleed’;

Nó đã được xóa thành công vì nó hiển thị rằng 'Truy vấn OK, 1 hàng bị ảnh hưởng'

Mysql xóa mục

Khi hiển thị tất cả các hàng của bảng 'sinh viên', chúng ta có thể thấy rằng bản ghi của hàng thứ 10 đã bị xóa khỏi bảng

Mysql xóa mục

Sử dụng cùng một truy vấn 'XÓA' trong trình điều hướng của bàn làm việc để xóa một bản ghi như được hiển thị

Mysql xóa mục

Ví dụ 02. Sử dụng nhiều hơn một điều kiện trong mệnh đề WHERE
Bạn cũng có thể xóa một hàng khỏi bảng, sử dụng nhiều hơn một điều kiện trong truy vấn ‘DELETE’ của MySQL. Chúng tôi đang sử dụng hai điều kiện trong mệnh đề 'WHERE', e. g. , 'họ = khursheed' và 'id > 7'. Truy vấn này sẽ chỉ xóa hàng có id lớn hơn '7' và họ của nó là 'khursheed'. Trong trường hợp của chúng tôi, nó là hàng thứ 9.

>> XÓA KHỎI dữ liệu. sinh viên WHERE lastname=’khursheed’ AND id > 7;

Hàng thứ 9 đã được xóa thành công vì thông báo rằng 'Truy vấn OK, 1 hàng bị ảnh hưởng. ’

Mysql xóa mục

Khi kiểm tra, chúng tôi chỉ còn 8 hàng trong bảng. Hàng thứ 9 đã bị xóa khỏi bảng, như hình bên dưới

Mysql xóa mục

Ví dụ 03. Sử dụng Điều kiện GIỚI HẠN trong Mệnh đề WHERE
Chúng ta cũng có thể xóa một hàng thông qua mệnh đề ‘GIỚI HẠN’ trong truy vấn ‘DELETE’. Trong truy vấn này, chúng tôi phải xác định giới hạn là '1' để xóa một hàng. Chúng tôi đã xác định giá trị giới hạn là '1' trong mệnh đề 'WHERE' của truy vấn 'DELETE'. Nó sẽ chỉ xóa hàng đầu tiên khỏi tất cả các bản ghi có 'lastname = Awan', là hàng số 2.

>> XÓA KHỎI dữ liệu. sinh viên WHERE lastname = 'Awan' ORDER BY id LIMIT 1;

Mysql xóa mục

Sử dụng truy vấn 'CHỌN' để kiểm tra bảng đã cập nhật. Bạn có thể thấy rằng hàng thứ 2 không có trong bảng như hiển thị bên dưới và chúng tôi chỉ còn lại 7 hàng

Mysql xóa mục

Xóa nhiều hàng qua dòng lệnh

Trước tiên, hãy cập nhật bảng 'sinh viên' bằng cách thêm một số bản ghi vào bảng để chúng tôi có thể xóa nhiều hàng. Hãy hiển thị các bản ghi của một bảng có họ là 'Awan', sử dụng truy vấn 'CHỌN' với mệnh đề WHERE duy nhất. Truy vấn này sẽ chỉ hiển thị 4 hàng vì chúng tôi chỉ có 4 bản ghi cho cột ‘lastname = Awan’

>> CHỌN * TỪ dữ liệu. sinh viên WHERE họ = 'Awan';

Mysql xóa mục

Ví dụ 01. Sử dụng Điều kiện GIỚI HẠN trong Mệnh đề WHERE
Để xóa nhiều hàng khỏi một bảng, chúng ta có thể sử dụng điều kiện ‘GIỚI HẠN’ trong mệnh đề ‘WHERE’ của truy vấn ‘DELETE’. Chúng ta chỉ cần xác định 'GIỚI HẠN' khác với 1 hoặc bất kỳ số âm nào. Vì vậy, chúng tôi đã xác định 'GIỚI HẠN' là '3', để xóa 3 hàng khỏi bảng. Nó sẽ xóa ba hàng đầu tiên của bản ghi có 'họ' là 'Awan'.

>> XÓA KHỎI dữ liệu. sinh viên WHERE lastname = 'Awan' ORDER BY id GIỚI HẠN 3;

Mysql xóa mục

Hiển thị các bản ghi còn lại của bảng bằng truy vấn 'CHỌN'. Bạn sẽ thấy, chỉ còn lại 1 bản ghi cho 'lastname' có giá trị 'Awan' và ba hàng đã bị xóa

Mysql xóa mục

Ví dụ 02. Sử dụng nhiều hơn một điều kiện trong mệnh đề WHERE
Chúng tôi đang sử dụng cùng một điều kiện ở trên bảng và xác định hai điều kiện trong mệnh đề 'WHERE' để xóa các hàng có 'id' lớn hơn 2 và nhỏ hơn 9 như .

>> XÓA KHỎI dữ liệu. sinh viên WHERE id > 2 AND id < 9;

Mysql xóa mục

Chúng tôi chỉ còn 2 hàng trong bảng trong khi kiểm tra các bản ghi

Mysql xóa mục

Ví dụ 03. Xóa tất cả các hàng
Bạn có thể xóa tất cả các hàng khỏi bảng 'sinh viên' bằng cách sử dụng truy vấn đơn giản bên dưới trong dòng lệnh như.

>> XÓA KHỎI dữ liệu. sinh viên;

Mysql xóa mục

Trong khi cố gắng hiển thị các bản ghi, bạn sẽ nhận được một tập hợp các bảng trống

Mysql xóa mục

Phần kết luận

Chúng tôi đã xem qua các cách khác nhau để xóa một hàng và nhiều hàng khỏi một bảng khi làm việc trong MySQL thông qua bàn làm việc và giao diện máy khách dòng lệnh

Làm cách nào để xóa dữ liệu trong MySQL?

Nếu bạn muốn xóa một bản ghi khỏi bất kỳ bảng MySQL nào, thì bạn có thể sử dụng lệnh SQL DELETE FROM. Bạn có thể sử dụng lệnh này tại dấu nhắc mysql> cũng như trong bất kỳ tập lệnh nào như PHP

Lệnh DELETE trong MySQL là gì?

DELETE là câu lệnh DML xóa các hàng khỏi bảng . Câu lệnh XÓA có thể bắt đầu bằng mệnh đề VỚI để xác định các biểu thức bảng chung có thể truy cập trong DELETE.

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

TRUNCATE TABLE yourTableName. Bây giờ bạn có thể kiểm tra tất cả các bản ghi đã bị xóa khỏi bảng hay chưa

Làm cách nào để xóa tất cả hàng trong MySQL?

Để xóa dữ liệu khỏi nhiều bảng bằng một câu lệnh DELETE duy nhất, bạn sử dụng câu lệnh DELETE JOIN sẽ được trình bày trong hướng dẫn tiếp theo. Để xóa tất cả các hàng trong một bảng mà không cần biết có bao nhiêu hàng đã xóa, bạn nên sử dụng câu lệnh TRUNCATE TABLE để có hiệu suất tốt hơn.