Bài 7: Cập nhật (UPDATE) và Xóa (DELETE) dữ liệu – Cẩn thận “củi lửa”!


I. Mục đích (Objectives)

Sau bài học này, người đọc sẽ:

  • Biết cách sửa đổi thông tin đã có bằng lệnh UPDATE.
  • Biết cách gỡ bỏ dữ liệu không còn cần thiết bằng lệnh DELETE.
  • Cực kỳ quan trọng: Hiểu rõ hậu quả của việc thiếu mệnh đề WHERE.
  • Hình thành thói quen an toàn: “Luôn Select trước khi Delete”.

II. Yêu cầu (Prerequisites)

III. Nội dung chi tiết (Detailed Content)

1. Cập nhật dữ liệu (UPDATE)

Dùng khi bạn muốn sửa thông tin, ví dụ: Nhập sai điểm nên sửa lại, học sinh chuyển lớp nên đổi tên lớp.
Cú pháp:

UPDATE ten_bang
SET cot_1 = gia_tri_moi, cot_2 = gia_tri_moi_khac
WHERE dieu_kien_loc;

Ví dụ 1: Sửa điểm cho một học sinh
Học sinh “Nguyễn Văn An” (giả sử có id = 1) phúc khảo bài thi, điểm tăng từ 8.5 lên 9.0.

UPDATE HocSinh
SET diem_tb = 9.0
WHERE id = 1;

Ví dụ 2: Cập nhật hàng loạt (Có chủ đích)
Tất cả học sinh lớp “10A1” được cộng thêm 0.5 điểm thi đua.

UPDATE HocSinh
SET diem_tb = diem_tb + 0.5
WHERE lop = '10A1';

Cảnh báo tai nạn: Nếu bạn viết lệnh sau mà QUÊN dòng WHERE:

UPDATE HocSinh SET diem_tb = 10;

=> Hậu quả: Toàn bộ học sinh trong trường đều thành 10 điểm! Đây là lỗi kinh điển của người mới (Newbie).

2. Xóa dữ liệu (DELETE)

Dùng khi muốn loại bỏ dòng dữ liệu khỏi bảng.
Cú pháp:

DELETE FROM ten_bang
WHERE dieu_kien;

Ví dụ 3: Xóa một học sinh cụ thể
Học sinh có id = 5 đã thôi học, cần xóa khỏi danh sách.

DELETE FROM HocSinh
WHERE id = 5;

Ví dụ 4: Xóa toàn bộ dữ liệu (Nguy hiểm)
Nếu muốn làm sạch bảng để nhập lại từ đầu.

DELETE FROM HocSinh;

3. Quy tắc an toàn (“Golden Rules” cho dân CNPM)

Khi đi làm thực tế, việc thao tác sai trên DB Production (dữ liệu thật) là thảm họa. Hãy dạy sinh viên 2 thói quen sống còn này:

Quy tắc 1: “Ngắm trước khi bắn” (Select before Delete)

Trước khi định xóa hay sửa ai đó, hãy chạy lệnh SELECT với cùng điều kiện WHERE để xem mình có chọn nhầm người không.

  • Bước 1 (Nháp):

    SELECT * FROM HocSinh WHERE ho_ten = 'Tèo';
    -- Kiểm tra xem có bao nhiêu người tên Tèo. Lỡ có 2 ông Tèo mà mình xóa cả 2 là chết dở.
  • Bước 2 (Thật): Đổi SELECT * thành DELETE sau khi đã chắc chắn.

Quy tắc 2: Tận dụng cơ chế Transaction của DB Browser

DB Browser for SQLite có một cơ chế bảo vệ rất hay:

  • Khi bạn chạy lệnh UPDATE hay DELETE, nó chưa lưu ngay vào ổ cứng.
  • Nút Write Changes (Ghi thay đổi): Chính thức lưu (Không cứu vãn được).
  • Nút Revert Changes (Khôi phục): Hủy bỏ lệnh vừa chạy, quay về trạng thái cũ.

Lời khuyên: Sau khi chạy lệnh Xóa/Sửa, hãy dùng tab “Browse Data” kiểm tra lại. Nếu thấy sai, nhấn ngay Revert Changes. Nếu đúng, mới nhấn Write Changes.

IV. Tổng kết (Summary)

Hôm nay chúng ta đã học về quyền năng “sinh sát” trong cơ sở dữ liệu.

  1. UPDATE để sửa.
  2. DELETE để xóa.
  3. Luôn luôn nhớ: KHÔNG BAO GIỜ QUÊN WHERE (trừ khi bạn thực sự muốn tác động lên toàn bộ bảng).

Đến đây, chúng ta đã kết thúc Giai đoạn 2 (Cơ bản). Bạn đã nắm trong tay đủ 4 món ăn chơi: INSERT, SELECT, UPDATE, DELETE (hay gọi tắt là CRUD).
Ở bài tiếp theo, chúng ta sẽ bước vào Giai đoạn 3: Tư duy thiết kế & Nâng cao. Chúng ta sẽ trả lời câu hỏi: “Làm sao để liên kết bảng Học Sinh với bảng Lớp Học để không phải nhập đi nhập lại tên lớp?“. Hẹn gặp lại các bạn trong Bài 8: Khóa chính (Primary Key) và Khóa ngoại (Foreign Key).

You may also like...

Để lại một bình luận