SQL - DELETE Query: Hướng dẫn thân thiện cho người mới bắt đầu

Xin chào các bạn đam mê SQL! Hôm nay, chúng ta sẽ cùng khám phá thế giới của các truy vấn DELETE trong SQL. Đừng lo lắng nếu bạn mới bắt đầu học lập trình - tôi sẽ hướng dẫn bạn từng bước, như đã làm cho hàng trăm học viên trong những năm dạy học của mình. Hãy lấy một cốc cà phê (hoặc trà, nếu bạn thích), và cùng bắt đầu nào!

SQL - Delete Query

Câu lệnh SQL DELETE

Hãy tưởng tượng bạn đang sắp xếp album ảnh kỹ thuật số của mình. Đôi khi, bạn muốn xóa bỏ một số ảnh, phải không? Đó chính xác là điều mà câu lệnh DELETE trong SQL làm - nó giúp chúng ta xóa bỏ dữ liệu không mong muốn từ các bảng trong cơ sở dữ liệu.

Dưới đây là cú pháp cơ bản của một câu lệnh DELETE:

DELETE FROM table_name
WHERE condition;

Hãy phân tích nó:

  • DELETE FROM: Điều này cho biết chúng ta muốn xóa something từ một bảng cụ thể.
  • table_name: Thay thế này bằng tên bảng của bạn.
  • WHERE: Đây là tùy chọn nhưng rất quan trọng. Nó xác định哪些 hàng để xóa.
  • condition: Đây là nơi bạn đặt điều kiện để xóa.

Ví dụ 1: Xóa một hàng duy nhất

Giả sử chúng ta có một bảng叫做 students và chúng ta muốn xóa học sinh tên là John Doe:

DELETE FROM students
WHERE name = 'John Doe';

Truy vấn này sẽ xóa hàng mà tên là chính xác 'John Doe'. Tuy nhiên, hãy cẩn thận! Nếu có nhiều John Doe, tất cả sẽ bị xóa.

Ví dụ 2: Xóa dựa trên điều kiện số học

Bây giờ, hãy xóa tất cả học sinh trên 25 tuổi:

DELETE FROM students
WHERE age > 25;

Truy vấn này sẽ xóa tất cả các hàng mà tuổi lớn hơn 25. Điều này giống như nói với cơ sở dữ liệu, "Hey, xóa bất kỳ ai đủ tuổi để thuê xe không cần trả thêm phí!"

Xóa nhiều hàng

Đôi khi, bạn có thể muốn xóa nhiều hàng thỏa mãn một số điều kiện. Hãy xem xét một vài ví dụ.

Ví dụ 3: Xóa hàng với nhiều điều kiện

Giả sử chúng ta muốn xóa tất cả học sinh trên 30 tuổi và điểm GPA dưới 2.5:

DELETE FROM students
WHERE age > 30 AND gpa < 2.5;

Truy vấn này kết hợp hai điều kiện bằng cách sử dụng AND. Điều này giống như nói, "Xóa các học sinh cả trên 30 tuổi và đang gặp khó khăn học tập."

Ví dụ 4: Xóa hàng dựa trên danh sách giá trị

Nếu chúng ta muốn xóa học sinh từ một danh sách thành phố cụ thể, chúng ta có thể sử dụng toán tử IN:

DELETE FROM students
WHERE city IN ('New York', 'Los Angeles', 'Chicago');

Truy vấn này sẽ xóa tất cả học sinh từ New York, Los Angeles hoặc Chicago. Điều này giống như có một danh sách VIP, nhưng để xóa!

Xóa tất cả các bản ghi từ bảng

Đôi khi, bạn có thể muốn làm sạch hoàn toàn một bảng. Điều này giống như quyết định làm trống toàn bộ tủ quần áo để bắt đầu lại từ đầu. Dưới đây là cách bạn làm:

DELETE FROM table_name;

Ví dụ, để xóa tất cả các bản ghi từ bảng students:

DELETE FROM students;

⚠️ Cảnh báo: Hãy cực kỳ cẩn thận với lệnh này! Điều này giống như sử dụng flamethrower để dọn phòng - hiệu quả, nhưng có thể gây ra thảm họa nếu sử dụng sai cách.

Xóa bản ghi trong nhiều bảng

Bây giờ, hãy nâng cấp một chút. Đôi khi, bạn cần xóa bản ghi trong nhiều bảng liên quan cùng một lúc. Điều này có thể phức tạp hơn một chút, nhưng đừng lo - tôi sẽ dẫn bạn qua.

Ví dụ 5: Xóa từ nhiều bảng sử dụng JOIN

Giả sử chúng ta có hai bảng: studentsenrollments. Chúng ta muốn xóa tất cả các bản ghi enrollments và học sinh không trả tiền học phí:

DELETE students, enrollments
FROM students
JOIN enrollments ON students.id = enrollments.student_id
WHERE students.fees_paid = 0;

Truy vấn này thực hiện một số điều:

  1. Nó nối bảng studentsenrollments.
  2. Nó tìm kiếm học sinh không trả tiền học phí.
  3. Nó xóa các bản ghi khớp từ cả hai bảng.

Điều này giống như dọn danh sách liên lạc và đồng thời xóa các liên hệ này khỏi tất cả các nhóm chat!

Ví dụ 6: Sử dụng subquery để xóa

Đôi khi, bạn có thể cần xóa dựa trên dữ liệu trong bảng khác mà không thực sự nối chúng. Dưới đây là một ví dụ:

DELETE FROM enrollments
WHERE student_id IN (
SELECT id
FROM students
WHERE graduation_year < 2020
);

Truy vấn này xóa tất cả các bản ghi enrollments cho học sinh tốt nghiệp trước năm 2020. Điều này giống như nói, "Xóa tất cả lời mời sự kiện cho những người đã chuyển đi."

Tóm tắt các phương pháp DELETE

Dưới đây là bảng tóm tắt các phương pháp DELETE chúng ta đã xem xét:

Phương pháp Mô tả Ví dụ
DELETE cơ bản Xóa hàng dựa trên điều kiện DELETE FROM students WHERE name = 'John Doe';
DELETE với nhiều điều kiện Xóa hàng thỏa mãn nhiều tiêu chí DELETE FROM students WHERE age > 30 AND gpa < 2.5;
DELETE với mệnh đề IN Xóa hàng dựa trên danh sách giá trị DELETE FROM students WHERE city IN ('New York', 'Los Angeles', 'Chicago');
DELETE tất cả bản ghi Xóa tất cả hàng từ bảng DELETE FROM students;
DELETE với JOIN Xóa bản ghi liên quan từ nhiều bảng DELETE students, enrollments FROM students JOIN enrollments ON students.id = enrollments.student_id WHERE students.fees_paid = 0;
DELETE với subquery Xóa dựa trên kết quả từ truy vấn khác DELETE FROM enrollments WHERE student_id IN (SELECT id FROM students WHERE graduation_year < 2020);

Và thế là bạn đã học được cách sử dụng các truy vấn DELETE trong SQL. Nhớ rằng, với quyền lực lớn đi kèm với trách nhiệm lớn. Luôn kiểm tra lại các mệnh đề WHERE trước khi chạy truy vấn DELETE, và nếu có thể, bắt đầu với một truy vấn SELECT để xem elő gì bạn sắp xóa.

Chúc bạn tập luyện các truy vấn này, chơi với chúng, và sớm bạn sẽ xóa dữ liệu như một chuyên gia! Chỉ nhớ - trong thế giới thực, thường tốt hơn là lưu trữ dữ liệu thay vì xóa vĩnh viễn. Chúc bạn may mắn với việc truy vấn, và mong rằng cơ sở dữ liệu của bạn luôn sạch sẽ và tổ chức!

Credits: Image by storyset