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
cú pháp
Khối mã sau đây có cú pháp SQL chung của lệnh DELETE để xóa dữ liệu khỏi bảng MySQL
DELETE FROM table_name [WHERE Clause]
- Nếu mệnh đề WHERE không được chỉ định, thì tất cả các bản ghi sẽ bị xóa khỏi bảng MySQL đã cho
- Bạn có thể chỉ định bất kỳ điều kiện nào bằng mệnh đề WHERE
- Bạn có thể xóa các bản ghi trong một bảng tại một thời điểm
Mệnh đề WHERE rất hữu ích khi bạn muốn xóa các hàng đã chọn trong bảngXóa dữ liệu khỏi Dấu nhắc Lệnh
Điều này sẽ sử dụng lệnh SQL DELETE với mệnh đề WHERE để xóa dữ liệu đã chọn vào bảng MySQL – tutorials_tbl
Thí dụ
Ví dụ sau sẽ xóa một bản ghi từ các nhân viên có id là 3
root@host# mysql -u root -p password; Enter password: mysql> use mydb; Database changed mysql> delete from employees where id = 3; Query OK, 1 row affected [0.14 sec] mysql>
Xóa dữ liệu bằng PHP Script
Bạn có thể sử dụng lệnh XÓA SQL có hoặc không có KHOẢN WHERE vào hàm PHP – mysqli_query[]. Hàm này sẽ thực thi lệnh SQL giống như cách nó được thực thi tại dấu nhắc mysql>
Tóm lược. trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách xóa dữ liệu khỏi nhiều bảng bằng cách sử dụng câu lệnh DELETE JOIN trong MySQL
Trong hướng dẫn trước, bạn đã học cách xóa hàng của nhiều bảng bằng cách sử dụng
- Một câu lệnh
DELETE
trên nhiều bảng - Một câu lệnh
DELETE
duy nhất trên nhiều bảng có liên quan mà bảng con có hành động tham chiếu _______55_______ cho khóa ngoại
Hướng dẫn này giới thiệu cho bạn một cách linh hoạt hơn để xóa dữ liệu khỏi nhiều bảng bằng cách sử dụng mệnh đề
0 hoặc
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
1 với câu lệnh
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
DELETE
MySQL
3 với
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
0
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
MySQL cũng cho phép bạn sử dụng mệnh đề
0 trong câu lệnh
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
DELETE
để xóa các hàng khỏi một bảng và các hàng phù hợp trong một bảng khácVí dụ: để xóa các hàng khỏi cả hai bảng
7 và
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
8 đáp ứng một điều kiện cụ thể, bạn sử dụng câu lệnh sau
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.key = T2.key WHERE condition;
Lưu ý rằng bạn đặt tên bảng
7 và
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
8 giữa các từ khóa
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
DELETE
và
2. Nếu bạn bỏ qua bảng
Code language: SQL [Structured Query Language] [sql]DELETE t1,t2 FROM t1 INNER JOIN t2 ON t2.ref = t1.id WHERE t1.id = 1;
7, câu lệnh
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
DELETE
chỉ xóa các hàng trong bảng ____2_______8. Tương tự, nếu bạn bỏ qua bảng_______2_______8, câu lệnhDELETE
sẽ chỉ xóa các hàng trong bảng_______2_______7Biểu thức
9 chỉ định điều kiện để khớp các hàng giữa bảng
Code language: SQL [Structured Query Language] [sql]DELETE t1,t2 FROM t1 INNER JOIN t2 ON t2.ref = t1.id WHERE t1.id = 1;
7 và_______2_______8 sẽ bị xóa
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
Điều kiện trong mệnh đề
2 xác định các hàng trong
Code language: SQL [Structured Query Language] [sql]2 row[s] affected
7 và
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
8 sẽ bị xóa
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
Ví dụ về MySQL
3 với
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
0
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
Giả sử, chúng ta có 2 bảng
7 và
Code language: SQL [Structured Query Language] [sql]2 row[s] affected
8 với cấu trúc và dữ liệu như sau
Code language: SQL [Structured Query Language] [sql]2 row[s] affected
DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
Câu lệnh sau đây xóa hàng có id 1 trong bảng
7 và cả hàng có
Code language: SQL [Structured Query Language] [sql]2 row[s] affected
0 1 trong bảng
Code language: SQL [Structured Query Language] [sql]DELETE T1 FROM T1 LEFT JOIN T2 ON T1.key = T2.key WHERE T2.key IS NULL;
8 bằng cách sử dụng câu lệnh
Code language: SQL [Structured Query Language] [sql]2 row[s] affected
2.
Code language: SQL [Structured Query Language] [sql]DELETE T1 FROM T1 LEFT JOIN T2 ON T1.key = T2.key WHERE T2.key IS NULL;
Code language: SQL [Structured Query Language] [sql]DELETE t1,t2 FROM t1 INNER JOIN t2 ON t2.ref = t1.id WHERE t1.id = 1;
Câu lệnh trả về thông báo sau
Code language: SQL [Structured Query Language] [sql]2 row[s] affected
Nó chỉ ra rằng hai hàng đã bị xóa
MySQL
3 với
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
1
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
Chúng ta thường sử dụng mệnh đề
5 trong câu lệnh
Code language: SQL [Structured Query Language] [sql]DELETE T1 FROM T1 LEFT JOIN T2 ON T1.key = T2.key WHERE T2.key IS NULL;
6 để tìm các hàng trong bảng bên trái có hoặc không có hàng trùng khớp trong bảng bên phải
Code language: SQL [Structured Query Language] [sql]DELETE T1 FROM T1 LEFT JOIN T2 ON T1.key = T2.key WHERE T2.key IS NULL;
Chúng ta cũng có thể sử dụng mệnh đề
1 trong câu lệnh
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
DELETE
để xóa các hàng trong một bảng [bảng bên trái] không có các hàng phù hợp trong một bảng khác [bảng bên phải]Cú pháp sau đây minh họa cách sử dụng câu lệnh
DELETE
với mệnh đề
1 để xóa các hàng khỏi bảng
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
7 không có hàng tương ứng trong bảngDROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
8
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
Code language: SQL [Structured Query Language] [sql]DELETE T1 FROM T1 LEFT JOIN T2 ON T1.key = T2.key WHERE T2.key IS NULL;
Lưu ý rằng chúng ta chỉ đặt bảng
7 sau từ khóa
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
DELETE
, không đặt cả bảng
7 và bảng
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
8 như chúng ta đã làm với mệnh đề
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
0
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
MySQL DELETE JOIN với ví dụ LEFT JOIN
Xem các bảng
8 và
Code language: SQL [Structured Query Language] [sql]DELETE customers FROM customers LEFT JOIN orders ON customers.customerNumber = orders.customerNumber WHERE orderNumber IS NULL;
9 sau đây trong cơ sở dữ liệu mẫu
Code language: SQL [Structured Query Language] [sql]DELETE customers FROM customers LEFT JOIN orders ON customers.customerNumber = orders.customerNumber WHERE orderNumber IS NULL;
Mỗi khách hàng không có hoặc nhiều đơn đặt hàng. Tuy nhiên, mỗi đơn hàng thuộc về một và chỉ một khách hàng
Chúng tôi có thể sử dụng câu lệnh
DELETE
với mệnh đề
1 để xóa dữ liệu chính của khách hàng. Câu lệnh sau loại bỏ những khách hàng chưa đặt hàng
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
Code language: SQL [Structured Query Language] [sql]DELETE customers FROM customers LEFT JOIN orders ON customers.customerNumber = orders.customerNumber WHERE orderNumber IS NULL;
Chúng tôi có thể xác minh việc xóa bằng cách tìm xem liệu những khách hàng không có bất kỳ đơn đặt hàng nào có tồn tại hay không bằng cách sử dụng truy vấn sau
Code language: SQL [Structured Query Language] [sql]SELECT c.customerNumber, c.customerName, orderNumber FROM customers c LEFT JOIN orders o ON c.customerNumber = o.customerNumber WHERE orderNumber IS NULL;
Truy vấn đã trả về một tập hợp kết quả trống, đó là những gì chúng tôi mong đợi
Trong hướng dẫn này, bạn đã học cách sử dụng câu lệnh MySQL
3 để xóa dữ liệu từ hai bảng trở lên
Code language: SQL [Structured Query Language] [sql]DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 [ id INT PRIMARY KEY AUTO_INCREMENT ]; CREATE TABLE t2 [ id VARCHAR[20] PRIMARY KEY, ref INT NOT NULL ]; INSERT INTO t1 VALUES [1],[2],[3]; INSERT INTO t2[id,ref] VALUES['A',1],['B',2],['C',3];
Làm cách nào để xóa id trong MySQL?
Câu lệnh XÓA MySQL .XÓA TỪ tên_bảng điều kiện WHERE;Thí dụ. XÓA KHỎI KHÁCH HÀNG WHERE CustomerName='Alfreds Futterkiste';XÓA KHỎI tên_bảng;Thí dụ. XÓA KHỎI Khách hàng;Làm cách nào để xóa hàng theo ID trong MySQL?
Để xóa các hàng trong bảng MySQL, hãy sử dụng câu lệnh DELETE FROM. XÓA TỪ các sản phẩm WHERE product_id=1; Mệnh đề WHERE là tùy chọn, nhưng thông thường bạn sẽ muốn dùng mệnh đề này, trừ khi bạn thực sự muốn xóa mọi hàng khỏi .Làm cách nào để xóa các giá trị 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ư PHPLàm cách nào để xóa các hàng rỗng trong MySQL?
Sử dụng lệnh xóa để xóa hàng trống trong MySQL. xóa khỏi yourTableName nơi yourColumnName=' ' OR yourColumnName IS NULL; Cú pháp trên sẽ xóa hàng trống cũng như hàng NULL. - Một câu lệnh