Bài 6 dạy bạn thực hiện đầy đủ các thao tác CRUD trên bảng dữ liệu với INSERT, UPDATE và DELETE, bao gồm các lưu ý quan trọng về điều kiện WHERE để tránh xóa/sửa nhầm dữ liệu.
🔥 6: INSERT - UPDATE - DELETE
Mục tiêu bài học: Học cách thêm, cập nhật và xóa dữ liệu trong SQL bằng cách sử dụng các câu lệnh
INSERT INTO,UPDATE, vàDELETE. Hiểu rõ cách thực hiện các thao tác CRUD (Create, Read, Update, Delete) trên bảng dữ liệu.
1️⃣ INSERT INTO – Chèn dữ liệu mới
Lệnh INSERT INTO được sử dụng để thêm dữ liệu mới vào một bảng trong cơ sở dữ liệu.
🔹 Cú pháp cơ bản
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
📌 Ví dụ: Thêm một sản phẩm mới vào bảng Products
INSERT INTO Products (Name, Category, Price, StockQuantity)
VALUES ('MacBook Pro', 'Laptop', 45000000, 10);
📌 Ví dụ: Thêm nhiều dòng dữ liệu cùng lúc vào bảng Customers
INSERT INTO Customers (Name, Email, City)
VALUES
('Nguyễn Văn A', 'nguyenvana@example.com', 'Hà Nội'),
('Trần Thị B', 'tranthib@example.com', 'TP.HCM'),
('Lê Văn C', 'levanc@example.com', 'Đà Nẵng');
📌 Lưu ý:
- Nếu bảng có cột tự động tăng (
AUTO_INCREMENT), không cần chèn giá trị vào cột đó. - Cần nhập đúng số lượng cột tương ứng với giá trị được chèn.
2️⃣ UPDATE – Cập nhật dữ liệu
Lệnh UPDATE giúp cập nhật giá trị của một hoặc nhiều dòng trong bảng.
🔹 Cú pháp cơ bản
UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;
📌 Ví dụ: Cập nhật giá của sản phẩm "MacBook Pro"
UPDATE Products
SET Price = 42000000
WHERE Name = 'MacBook Pro';
📌 Ví dụ: Tăng giá tất cả sản phẩm thuộc danh mục 'Laptop' thêm 10%
UPDATE Products
SET Price = Price * 1.1
WHERE Category = 'Laptop';
📌 Ví dụ: Cập nhật thành phố của khách hàng có ID = 5
UPDATE Customers
SET City = 'Hải Phòng'
WHERE ID = 5;
📌 Lưu ý quan trọng:
- Luôn sử dụng
WHEREđể tránh cập nhật toàn bộ dữ liệu trong bảng. - Nếu bỏ
WHERE, tất cả các dòng dữ liệu sẽ bị cập nhật!
3️⃣ DELETE – Xóa dữ liệu
Lệnh DELETE giúp xóa một hoặc nhiều dòng dữ liệu khỏi bảng.
🔹 Cú pháp cơ bản
DELETE FROM table_name
WHERE condition;
📌 Ví dụ: Xóa sản phẩm có tên "MacBook Pro"
DELETE FROM Products
WHERE Name = 'MacBook Pro';
📌 Ví dụ: Xóa tất cả khách hàng đến từ "Hà Nội"
DELETE FROM Customers
WHERE City = 'Hà Nội';
📌 Ví dụ: Xóa các sản phẩm hết hàng (StockQuantity = 0)
DELETE FROM Products
WHERE StockQuantity = 0;
📌 Lưu ý quan trọng:
- Luôn dùng
WHEREđể tránh xóa toàn bộ dữ liệu. - Nếu chạy
DELETE FROM table_name;mà không cóWHERE, toàn bộ bảng sẽ bị xóa dữ liệu! - Nếu muốn xóa toàn bộ dữ liệu nhưng vẫn giữ cấu trúc bảng, dùng
TRUNCATE TABLE table_name;.
4️⃣ So sánh DELETE và TRUNCATE
| Phương thức | Mô tả | Có thể hoàn tác không? | Ảnh hưởng đến AUTO_INCREMENT |
|---|---|---|---|
| DELETE | Xóa từng dòng một theo điều kiện | ✅ Có (nếu có ROLLBACK) | ❌ Không thay đổi |
| TRUNCATE | Xóa toàn bộ dữ liệu trong bảng | ❌ Không thể hoàn tác | ✅ Reset AUTO_INCREMENT |
📖 Tham khảo:
5️⃣ Thực hành
👉 Bài tập 1: Thêm một khách hàng mới vào bảng Customers.
INSERT INTO Customers (Name, Email, City)
VALUES ('Phạm Minh D', 'phamminhd@example.com', 'Hải Phòng');
👉 Bài tập 2: Cập nhật số lượng tồn kho của sản phẩm có ID = 10 thành 50.
UPDATE Products
SET StockQuantity = 50
WHERE ID = 10;
👉 Bài tập 3: Giảm giá 5% cho tất cả sản phẩm thuộc danh mục "Điện thoại".
UPDATE Products
SET Price = Price * 0.95
WHERE Category = 'Điện thoại';
👉 Bài tập 4: Xóa khách hàng có Email = 'tranthib@example.com'.
DELETE FROM Customers
WHERE Email = 'tranthib@example.com';
👉 Bài tập 5: Xóa tất cả sản phẩm có giá dưới 100,000 VNĐ.
DELETE FROM Products
WHERE Price < 100000;
📖 Tham khảo:
📌 Quick Quiz
- Lệnh
INSERT INTOcó thể thêm nhiều dòng cùng lúc không? Nếu có, cú pháp là gì? - Làm sao để tăng giá tất cả sản phẩm trong bảng
Productslên 10%? - Sự khác biệt giữa
DELETEvàTRUNCATElà gì? - Điều gì xảy ra nếu chạy
DELETE FROM Products;mà không cóWHERE?
✅ Tóm tắt Ngày 6
✔️ INSERT INTO để thêm dữ liệu mới vào bảng.
✔️ UPDATE để cập nhật thông tin của một hoặc nhiều bản ghi.
✔️ DELETE để xóa dữ liệu, cần cẩn thận với WHERE.
✔️ TRUNCATE TABLE xóa toàn bộ dữ liệu trong bảng mà không thể hoàn tác.
🚀 Tiếp theo: Kiểm tra kiến thức - Bài tập tổng hợp tuần 1.
📌 Lộ trình: Học SQL trong 30 ngày