Bài 17. SQL: thêm, sửa và xoá dữ liệu
Bên cạnh việc truy vấn để xem dữ liệu, SQL còn cho phép thay đổi dữ liệu đã lưu bằng ba lệnh INSERT, UPDATE và DELETE. Bài học chỉ ra cách dùng từng lệnh, và vì sao mệnh đề WHERE lại quan trọng đến mức có thể quyết định cả một bảng dữ liệu còn nguyên vẹn hay biến mất chỉ trong một câu lệnh.
- Cánh DiềuTin học 11 (Khoa học máy tính) - Chủ đề F · Bài 4. Các biểu mẫu cho xem và cập nhập dữ liệutr. 62
- Cánh DiềuTin học 11 (Tin học ứng dụng) - Chủ đề F · Bài 4. Các biểu mẫu cho xem và cập nhập dữ liệutr. 62
Bắt đầu bằng một hình dung
Hãy tưởng tượng một câu lạc bộ ở trường có một cuốn sổ ghi danh sách thành viên, mỗi dòng ghi mã số, họ tên, lớp và điểm rèn luyện của một người. Cuốn sổ này không thể đứng yên mãi: có người mới xin gia nhập, cần thêm hẳn một dòng mới; có người bị ghi nhầm lớp hoặc điểm, cần sửa lại đúng dòng đó cho khớp thực tế; có người đã rời câu lạc bộ, cần gạch bỏ dòng của người đó khỏi sổ.
Người phụ trách sổ luôn phải làm việc này rất cẩn thận: mỗi lần sửa hay gạch bỏ, phải chỉ ra đúng chính xác dòng nào, đúng người nào. Nếu chỉ định mơ hồ, hoặc tệ hơn là quên mất việc chỉ định, rất có thể cả cuốn sổ sẽ bị sửa hoặc xoá sạch chỉ trong một lần đặt bút - điều không ai muốn xảy ra.
Cơ sở dữ liệu vận hành y hệt như vậy. Công cụ để thêm, sửa, xoá dữ liệu trong một bảng chính là ba câu lệnh SQL: INSERT, UPDATE và DELETE.
Nội dung bài học
- 1) Ba việc có thể làm với dữ liệu đã lưu
- 2) Thêm dữ liệu mới với
INSERT INTO - 3) Sửa dữ liệu đã có với
UPDATE,SETvàWHERE - 4) Xoá dữ liệu không cần nữa với
DELETE FROMvàWHERE
Tóm tắt lý thuyết cần nhớ
- Ba lệnh thao tác dữ liệu trong SQL là
INSERT(thêm),UPDATE(sửa) vàDELETE(xoá) - khác vớiSELECTchỉ dùng để xem dữ liệu. INSERT INTO bảng (cột...) VALUES (giá_trị...);thêm một dòng mới, với các giá trị khớp đúng thứ tự các cột đã liệt kê.UPDATE bảng SET cột = giá_trị WHERE điều_kiện;chỉ sửa (những) dòng thoả điều kiện;DELETE FROM bảng WHERE điều_kiện;chỉ xoá (những) dòng đó.- Quên mệnh đề
WHEREtrongUPDATEhoặcDELETElà lỗi rất nguy hiểm: lệnh sẽ áp dụng cho TOÀN BỘ các dòng đang có trong bảng, không chỉ riêng dòng bạn muốn thay đổi.
Thuật ngữ tiếng Anh trong bài
| Tiếng Anh | Đọc là | Nghĩa |
|---|---|---|
| SQL | ét-qui-eo | ngôn ngữ truy vấn cơ sở dữ liệu Ngôn ngữ đặc biệt dùng để hỏi và lấy thông tin từ những kho dữ liệu lớn - giống cách em hỏi thủ thư tìm đúng cuốn sách cần. |
| INSERT | in-SƠT | lệnh SQL thêm dữ liệu Lệnh SQL để thêm một hàng dữ liệu mới vào bảng - như ghi thêm một bạn vào danh sách. |
| UPDATE | ẤP-đêi | lệnh SQL sửa dữ liệu Lệnh SQL để sửa lại dữ liệu đã có trong bảng - như đổi lại điểm cho đúng. |
| DELETE | đi-LÍT | lệnh SQL xoá dữ liệu Lệnh SQL để xoá một hàng dữ liệu khỏi bảng - như xoá tên một bạn đã chuyển trường. |
| SELECT | si-LẾCH | lệnh SQL lấy dữ liệu Lệnh SQL để 'chọn ra' dữ liệu cần xem từ bảng - như bảo 'lấy cho tôi cột tên và điểm'. |
| WHERE | que | mệnh đề điều kiện WHERE Là phần chỉ rõ lệnh chỉ áp dụng cho những dòng thoả điều kiện nào. |
Câu hỏi trắc nghiệm có đáp án
Mấy câu mẫu để bạn tự kiểm tra ngay. Trong ứng dụng, bài này có đủ 23 câu, chấm điểm tự động và giải thích từng câu sai.
SELECTINSERT INTOUPDATEDELETE FROM
INSERT INTO dùng để thêm một dòng mới vào bảng. SELECT dùng để truy vấn (xem dữ liệu), UPDATE dùng để sửa dữ liệu đã có, còn DELETE FROM dùng để xoá dữ liệu - không phải để thêm mới.UPDATE HOC_SINH SET Diem = 9.0 WHERE Ma = 'HS021';, mệnh đề nào xác định chỉ dòng nào bị thay đổi?SETUPDATEWHEREHOC_SINH
WHERE là mệnh đề điều kiện, chỉ những dòng thoả điều kiện đó (ở đây là Ma = 'HS021') mới bị sửa. SET chỉ cho biết cột nào và giá trị mới là gì, không giới hạn phạm vi dòng bị ảnh hưởng.HOC_SINH(Ma, HoTen, Lop, Diem). Câu lệnh nào sau đây thêm đúng một học sinh mới có Ma là HS030, HoTen là Trần Thị Cúc, Lop là 12A1, Diem là 7.5?INSERT INTO HOC_SINH (Ma, HoTen, Lop, Diem) WHERE VALUES ('HS030', 'Trần Thị Cúc', '12A1', 7.5);UPDATE HOC_SINH SET Ma='HS030', HoTen='Trần Thị Cúc', Lop='12A1', Diem=7.5;INSERT INTO HOC_SINH (Ma, HoTen, Lop, Diem) VALUES ('HS030', 'Trần Thị Cúc', '12A1', 7.5);INSERT HOC_SINH (Ma, HoTen, Lop, Diem) VALUES ('HS030', 'Trần Thị Cúc', '12A1', 7.5);
INSERT INTO bảng (cột...) VALUES (giá_trị...);, với thứ tự giá trị khớp đúng thứ tự cột. Phương án dùng UPDATE là sai vì đó là lệnh sửa dữ liệu đã có chứ không phải thêm mới, lại còn thiếu WHERE nên rất nguy hiểm nếu lỡ chạy. Hai phương án còn lại sai cú pháp: một đặt WHERE sai chỗ (INSERT không có mệnh đề này), một thiếu hẳn từ khoá INTO.- a)Lệnh SELECT cũng làm thay đổi dữ liệu trong bảng, giống như UPDATE.Sai
- b)Trong câu lệnh INSERT INTO, thứ tự giá trị liệt kê sau VALUES phải khớp với thứ tự cột đã liệt kê trước đó.Đúng
- c)Nếu quên mệnh đề WHERE trong lệnh DELETE FROM, chỉ dòng đầu tiên của bảng bị xoá.Sai
- d)Mệnh đề WHERE trong UPDATE và DELETE dùng để giới hạn (những) dòng bị câu lệnh tác động tới.Đúng
- (a) Sai - SELECT chỉ dùng để truy vấn, xem dữ liệu, hoàn toàn không làm thay đổi bất kỳ giá trị nào trong bảng.
- (b) Đúng - giá trị trong VALUES phải khớp đúng thứ tự với danh sách cột đã nêu trong INSERT INTO.
- (c) Sai - DELETE FROM thiếu WHERE sẽ xoá TOÀN BỘ các dòng trong bảng, không chỉ riêng dòng đầu tiên.
- (d) Đúng - WHERE chính là điều kiện giới hạn phạm vi những dòng bị UPDATE hoặc DELETE tác động tới; thiếu nó, câu lệnh áp dụng cho cả bảng.
Thử ngay: minh hoạ từng bước
Bấm từng bước để tự xem cơ chế hoạt động, hoặc bấm “Tự chạy” cho nó tiến mỗi giây một lần. Đổi được dữ liệu đầu vào - không cần đăng nhập.
Học trọn bài này trong ứng dụng
Bài giảng đầy đủ, 23 câu luyện tập chấm tự động, thi thử đúng cấu trúc đề tốt nghiệp (24 trắc nghiệm + 4 Đúng/Sai), bài thực hành máy tự chấm và gia sư AI giải thích chỗ sai.
Phần học miễn phí, không cần tạo tài khoản.
Bài liên quan - Tổ chức, lưu trữ & tìm kiếm thông tin
Cùng mạch kiến thức với bài này, học nối tiếp cho chắc phần lí thuyết.