Câu lệnh DELETE trong MariaDB
Câu lệnh DELETE
được sử dụng để xóa các hàng dữ liệu trong bảng dựa trên điều kiện nhất định. Sau khi xóa, có thể sử dụng hàm ROW_COUNT()
để kiểm tra số lượng hàng đã bị xóa.

- Nếu sử dụng
DELETE
mà không có mệnh đềWHERE
, toàn bộ dữ liệu trong bảng sẽ bị xóa. - Có thể sử dụng
LIMIT
để giới hạn số lượng bản ghi bị xóa. - Khi thực hiện
DELETE
trên nhiều bảng, chỉ các bản ghi đáp ứng điều kiện mới bị xóa. - MariaDB không cho phép vừa xóa dữ liệu trong bảng vừa thực hiện truy vấn con (
SELECT
) từ bảng đó trong cùng một câu lệnh.
Cú pháp của câu lệnh DELETE trong MariaDB
DELETE FROM ten_bang [WHERE dieu_kien]
Trong đó:
ten_bang
: Tên bảng cần xóa dữ liệu.WHERE dieu_kien
: Điều kiện để xác định hàng dữ liệu cần xóa. Nếu không cóWHERE
, toàn bộ bảng sẽ bị xóa.
Xóa dữ liệu bằng giao diện dòng lệnh (Command Prompt) trong MariaDB
Tại dòng lệnh của MariaDB, có thể thực hiện lệnh DELETE
như sau:
root@host# mysql -u root -p Enter password:******* mysql> USE PRODUCTS; Database changed mysql> DELETE FROM products_tbl WHERE product_id = 133;
Sau khi xóa, kiểm tra dữ liệu bằng cách truy vấn:
Bài viết này được đăng tại [free tuts .net]
SELECT * FROM products_tbl WHERE ID_number = 133;
Kết quả hiển thị:
ERROR 1032 (HY000): Can't find record in 'products_tbl'
=> Điều này có nghĩa là bản ghi có product_id = 133
đã bị xóa khỏi bảng.
Xóa dữ liệu bằng PHP trong MariaDB
Trong PHP, có thể sử dụng lệnh DELETE
để xóa dữ liệu trong MariaDB. Tuy nhiên, không nên sử dụng mysql_query()
vì nó đã lỗi thời. Thay vào đó, nên sử dụng mysqli
hoặc PDO
để đảm bảo an toàn và hiệu suất tốt hơn.
Ví dụ sử dụng mysqli
để xóa dữ liệu:
<?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = 'rootpassword'; $dbname = 'PRODUCTS'; // Kết nối đến cơ sở dữ liệu $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname); // Kiểm tra kết nối if ($conn->connect_error) { die("Kết nối thất bại: " . $conn->connect_error); } // Câu lệnh DELETE $sql = "DELETE FROM products_tbl WHERE product_id = 261"; if ($conn->query($sql) === TRUE) { echo "Xóa dữ liệu thành công!"; } else { echo "Lỗi khi xóa dữ liệu: " . $conn->error; } // Đóng kết nối $conn->close(); ?>
Sau khi thực hiện lệnh trên, nếu kiểm tra lại bằng câu lệnh sau:
SELECT * FROM products_tbl WHERE ID_number = 261;
Kết quả hiển thị:
ERROR 1032 (HY000): Can't find record in 'products_tbl'
=> Điều này xác nhận bản ghi đã bị xóa thành công.
Kết bài
Câu lệnh DELETE
giúp loại bỏ dữ liệu không còn cần thiết trong bảng MariaDB. Khi sử dụng DELETE
, cần lưu ý:
- Luôn sử dụng
WHERE
để tránh xóa toàn bộ dữ liệu trong bảng. - Có thể dùng
LIMIT
để giới hạn số bản ghi bị xóa. - Khi làm việc với PHP, nên dùng
mysqli
hoặcPDO
thay vìmysql_query()
để đảm bảo bảo mật và hiệu suất cao.
Hiểu rõ cách sử dụng DELETE
sẽ giúp bạn quản lý dữ liệu hiệu quả, tránh mất dữ liệu ngoài ý muốn.