Delete (SQL)

Câu lệnh SQL DELETE xóa một hoặc nhiều hàng trong bảng dữ liệu. Nếu thực hiện câu lệnh DELETE với 1 điều kiện nào đó thì một số hàng thỏa điều kiện sẽ bị xóa đi, ngược lại tất cả các hàng sẽ bị xóa hết.

Ví dụ thông thường

Xóa các hàng trong bảng pies với điều kiện giá trị trong cột flavorLemon Meringue:

DELETE FROM pies WHERE flavor='Lemon Meringue';

Xóa các hàng trong bảng trees, nếu giá trị trong cột height nhỏ hơn 80.

DELETE FROM trees WHERE height < 80;

Xóa tất cả các hàng trong bảng mytable:

DELETE FROM mytable;

Xóa các hàng trong bảng mytable sử dụng câu lệnh SELECT trong mệnh đề điều kiện:

DELETE FROM mytable WHERE id IN (SELECT id FROM mytable2)

Xóa các hàng trong bảng mytable sử dụng danh sách các giá trị điều kiện:

DELETE FROM mytable WHERE id IN (value1, value2, value3, value4, value5)

Ví dụ với các bảng quan hệ

Giả sử có 1 cơ sở dữ liệu đơn giản chứa thông tin cá nhân và địa chỉ. Có nhiều người sống tại 1 địa chỉ, và cũng có thể có một người sống ở nhiều địa chỉ khác nhau (đây là ví dụ cho quan hệ nhiều-nhiều many-to-many relationship). Trong cơ sở dữ liệu chỉ có 3 bảng person, address, và pa, với dữ liệu như sau:

person

pid name
1 Joe
2 Bob
3 Ann

address

aid description
100 2001 Main St.
200 35 Pico Blvd.

pa

pid aid
1 100
2 100
3 100
1 200

Bảng pa liên kết 2 bảng personaddress, thể hiện Joe, Bob và Ann cùng sống chung tại 2001 Main Street, nhưng Joe lại sống ở đường Pico Boulevard.

Để xóa thông tin về Joe khỏi cơ sở dữ liệu, phải thực thi 2 lệnh xóa:

DELETE FROM person WHERE pid=1
DELETE FROM pa WHERE pid=1

Tham khảo

  • Peter Rob & Carlos Coronel. Database System: Design, Implementation, & Management, 2004, THOMSON Course Technology.

Xem thêm