SQLite - Truy vấn DELETE

Xin chào, những người học lập trình có tham vọng! Hôm nay, chúng ta sẽ cùng lặn sâu vào thế giới kỳ diệu của SQLite và khám phá một trong những thao tác quan trọng của nó: truy vấn DELETE. Là người giáo viên khoa học máy tính hàng xóm thân thiện của bạn, tôi ở đây để hướng dẫn bạn từng bước trong hành trình này. Đừng lo lắng nếu bạn mới bắt đầu học lập trình - chúng ta sẽ bắt đầu từ những điều cơ bản và dần dần nâng cao. Vậy, hãy lấy饮料 yêu thích của bạn, ngồi thoải mái, và bắt đầu nào!

SQLite - DELETE Query

Truy vấn DELETE là gì?

Trước khi chúng ta nhảy vào cú pháp và các ví dụ, hãy hiểu truy vấn DELETE là gì và tại sao nó quan trọng.

Hãy tưởng tượng bạn có một sổ địa chỉ kỹ thuật số đầy thông tin liên hệ của bạn bè. Qua thời gian, một số bạn bè chuyển đi hoặc thay đổi số điện thoại. Truy vấn DELETE giống như cục tẩy của bạn - nó giúp bạn xóa bỏ thông tin lỗi thời hoặc không cần thiết khỏi cơ sở dữ liệu. Trong SQLite, chúng ta sử dụng lệnh DELETE để xóa một hoặc nhiều bản ghi khỏi bảng.

Cú pháp

Bây giờ, hãy xem xét cú pháp cơ bản của truy vấn DELETE trong SQLite:

DELETE FROM table_name
WHERE condition;

Hãy phân tích điều này:

  1. DELETE FROM: Điều này告诉 SQLite rằng chúng ta muốn xóa dữ liệu từ một bảng cụ thể.
  2. table_name: Đây là tên của bảng mà bạn muốn xóa các bản ghi.
  3. WHERE: Dette điều khoản là tùy chọn nhưng rất quan trọng. Nó xác định哪些 bản ghi nên bị xóa.
  4. condition: Đây là tiêu chí xác định哪些 bản ghi sẽ bị xóa.

? Cảnh báo: Nếu bạn bỏ qua điều khoản WHERE, tất cả các bản ghi trong bảng sẽ bị xóa! Hãy kiểm tra lại các lệnh DELETE của bạn trước khi thực thi chúng.

Ví dụ

Bây giờ chúng ta đã hiểu các nguyên tắc cơ bản, hãy cùng xem xét một số ví dụ thực tế. Chúng ta sẽ sử dụng bảng giả định "Students" cho các ví dụ của mình.

Ví dụ 1: Xóa một bản ghi duy nhất

Giả sử chúng ta muốn xóa một học sinh tên là "John Doe" khỏi bảng Students.

DELETE FROM Students
WHERE name = 'John Doe';

Truy vấn này sẽ xóa tất cả các bản ghi nơi tên chính xác là "John Doe". Nếu có nhiều học sinh có tên này, tất cả họ sẽ bị xóa.

Ví dụ 2: Xóa nhiều bản ghi dựa trên một điều kiện

Giả sử chúng ta muốn xóa tất cả cá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 bản ghi nơi tuổi lớn hơn 25.

Ví dụ 3: Xóa tất cả các bản ghi (Hãy cẩn thận!)

Nếu bạn muốn xóa tất cả các bản ghi khỏi bảng nhưng giữ cấu trúc bảng:

DELETE FROM Students;

? Cẩn thận: Điều này sẽ xóa tất cả các bản ghi trong bảng Students! Hãy sử dụng điều này với极端谨慎.

Ví dụ 4: Sử dụng nhiều điều kiện

Chúng ta có thể kết hợp nhiều điều kiện bằng cách sử dụng AND hoặc OR:

DELETE FROM Students
WHERE age > 20 AND grade < 'C';

Truy vấn này sẽ xóa tất cả các bản ghi của học sinh trên 20 tuổi và có điểm dưới C.

Ví dụ 5: Sử dụng toán tử LIKE

Toán tử LIKE rất hữu ích khi bạn muốn xóa các bản ghi dựa trên khớp từng phần:

DELETE FROM Students
WHERE name LIKE 'John%';

Điều này sẽ xóa tất cả các bản ghi nơi tên bắt đầu bằng "John".

Các nguyên tắc và lời khuyên tốt nhất

  1. Luôn sử dụng điều khoản WHERE: Trừ khi bạn có ý định xóa tất cả các bản ghi, hãy luôn bao gồm điều khoản WHERE để xác định哪些 bản ghi cần xóa.

  2. Kiểm tra với SELECT trước: Trước khi chạy một truy vấn DELETE, điều tốt nhất là chạy một truy vấn SELECT với cùng điều khoản WHERE để xem哪些 bản ghi sẽ bị ảnh hưởng.

SELECT * FROM Students WHERE age > 25;
  1. Sử dụng giao dịch: Đối với các thao tác DELETE quan trọng, hãy cân nhắc sử dụng giao dịch. Điều này cho phép bạn hoàn tác các thay đổi nếu có điều gì đó xảy ra sai:
BEGIN TRANSACTION;
DELETE FROM Students WHERE grade = 'F';
-- Kiểm tra xem mọi thứ có chính xác không
COMMIT; -- hoặc ROLLBACK nếu có vấn đề
  1. Sao lưu dữ liệu của bạn: Luôn có một bản sao lưu của cơ sở dữ liệu của bạn trước khi thực hiện các thao tác DELETE lớn.

Các phương pháp DELETE phổ biến

Dưới đây là bảng tóm tắt các phương pháp DELETE phổ biến trong SQLite:

Phương pháp Mô tả Ví dụ
Xóa một bản ghi duy nhất Xóa một bản ghi cụ thể DELETE FROM Students WHERE id = 5;
Xóa nhiều bản ghi Xóa nhiều bản ghi dựa trên một điều kiện DELETE FROM Students WHERE grade = 'F';
Xóa tất cả các bản ghi Xóa tất cả các bản ghi trong bảng DELETE FROM Students;
Xóa có điều kiện Xóa bản ghi dựa trên điều kiện phức tạp DELETE FROM Students WHERE age > 18 AND grade < 'C';
Xóa dựa trên mẫu Xóa bản ghi khớp với mẫu DELETE FROM Students WHERE name LIKE 'A%';

Kết luận

Và thế là bạn đã có, các bạn! Chúng ta đã cùng nhau hành trình qua thế giới của truy vấn DELETE trong SQLite. Nhớ rằng, với quyền lực lớn đi kèm với trách nhiệm lớn. Truy vấn DELETE là công cụ mạnh mẽ, nhưng nó cũng có thể nguy hiểm nếu sử dụng không cẩn thận. Luôn kiểm tra lại các điều kiện của bạn, kiểm tra với truy vấn SELECT trước, và luôn备份 dữ liệu quan trọng của bạn.

Khi chúng ta kết thúc, tôi nhớ lại một câu chuyện từ những ngày đầu dạy học. Một học sinh đã vô tình xóa bỏ toàn bộ bảng dữ liệu dự án học kỳ của họ chỉ trước hạn nộp bài. May mắn thay, chúng tôi đã có bản sao lưu! Vì vậy, hãy để đây là một bài học - luôn, luôn, luôn sao lưu dữ liệu của bạn và kiểm tra lại truy vấn DELETE của bạn ba lần.

Tiếp tục thực hành, 保持好奇心, và chúc các bạn lập trình vui vẻ! Nếu bạn có bất kỳ câu hỏi nào, hãy nhớ - không có câu hỏi nào là ngốc nghếch trong lập trình. Chúng ta đều ở đây để học hỏi và cùng nhau phát triển.

Credits: Image by storyset