

Các Lệnh DML Cơ Bản Trong MySQL: INSERT, UPDATE, DELETE
- 08-07-2025
- Toanngo92
- 0 Comments
Các câu lệnh DML trong MySQL nhằm mục đích thêm sửa xóa các bản ghi trong bảng, views vvv đã được tạo bởi các câu lệnh DML, các câu lệnh này không mang ý nghĩa định nghĩa dữ liệu, mà chỉ mang ý nghĩa tương tác với dữ liệu đã có cấu trúc dữ liệu rõ ràng.
Mục lục
1. Lệnh INSERT INTO
– Thêm Dữ Liệu
Cú pháp đầy đủ:
INSERT INTO ten_bang (cot1, cot2, ...)
VALUES (gia_tri1, gia_tri2, ...);
Ví dụ:
INSERT INTO Users (username, email)
VALUES ('toannguyen', '[email protected]');
Chèn nhiều dòng cùng lúc:
INSERT INTO Users (username, email)
VALUES
('alice', '[email protected]'),
('bob', '[email protected]');
Chèn với tất cả các cột:
Nếu bạn muốn chèn giá trị cho toàn bộ các cột, có thể bỏ phần danh sách cột (nhưng cần đúng thứ tự!):
INSERT INTO Users
VALUES (1, 'charlie', '[email protected]');
2. Lệnh UPDATE
– Cập Nhật Dữ Liệu
Cú pháp:
UPDATE ten_bang
SET cot1 = gia_tri1, cot2 = gia_tri2, ...
WHERE dieu_kien;
⚠️ Không dùng
WHERE
sẽ cập nhật toàn bộ bảng!
Ví dụ:
UPDATE Users
SET email = '[email protected]'
WHERE username = 'alice';
Cập nhật nhiều cột:
UPDATE Users
SET
username = 'bob123',
email = '[email protected]'
WHERE id = 2;
3. Lệnh DELETE
– Xóa Dữ Liệu
Cú pháp:
DELETE FROM ten_bang
WHERE dieu_kien;
⚠️ Không có
WHERE
sẽ xóa toàn bộ dữ liệu trong bảng.
Ví dụ:
DELETE FROM Users
WHERE id = 1;
Xóa toàn bộ bảng:
DELETE FROM Users;
-- hoặc
TRUNCATE TABLE Users;
Lệnh | Có rollback? | Reset AUTO_INCREMENT? |
---|---|---|
DELETE | ✅ Có | ❌ Không |
TRUNCATE | ❌ Không | ✅ Có |
💡 Gợi Ý Thực Hành
Giả sử bạn có bảng Students
như sau:
CREATE TABLE Students (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
age INT
);
➕ Thêm dữ liệu:
INSERT INTO Students (name, age)
VALUES ('Nam', 20), ('Linh', 22), ('Hà', 19);
🔁 Cập nhật:
UPDATE Students
SET age = 23
WHERE name = 'Linh';
❌ Xóa dữ liệu:
DELETE FROM Students
WHERE age < 20;
📘 Kết Luận
Ba lệnh DML cơ bản này là nền tảng cho mọi thao tác dữ liệu trong MySQL:
INSERT
: thêm dữ liệu mớiUPDATE
: sửa dữ liệu cũDELETE
: xóa dữ liệu không cần
Bài tập
1. Tạo database tên studentManagement
Tạo một cơ sở dữ liệu có tên là studentManagement
. Sau khi tạo xong, sử dụng cơ sở dữ liệu đó để thực hiện các thao tác tiếp theo.
2. Tạo các bảng dữ liệu
a. Bảng class
với cấu trúc sau:
Column | Datatype | Constraint | Description |
---|---|---|---|
ClassId | INT | NOT NULL, PK | |
ClassName | VARCHAR(30) |
b. Bảng student
với cấu trúc sau:
Column | Datatype | Constraint | Description |
---|---|---|---|
StudentId | INT | NOT NULL, PK | |
StudentName | VARCHAR(50) | ||
BirthDate | DATETIME | ||
ClassId | INT | FK → Class(ClassId) |
c. Bảng subject
với cấu trúc sau:
Column | Datatype | Constraint | Description |
---|---|---|---|
SubjectId | INT | NOT NULL, PK | |
SubjectName | VARCHAR(100) | ||
SessionCount | INT | CHECK (SessionCount > 0) |
🔹 Lưu ý: Ràng buộc
CHECK
chỉ hỗ trợ từ MySQL 8.0 trở lên.
d. Bảng result
với cấu trúc sau:
Column | Datatype | Constraint | Description |
---|---|---|---|
StudentId | INT | NOT NULL, PK (kết hợp) | |
SubjectId | INT | NOT NULL, PK (kết hợp) | |
Mark | FLOAT | ||
FK → Student(StudentId), FK → Subject(SubjectId) |
3. Sửa đổi bảng result
Thay đổi kiểu dữ liệu cột Mark
từ INT
sang FLOAT
.
(Nếu chưa tạo bảng, có thể dùng kiểu
FLOAT
ngay từ đầu)
4. Nhập liệu vào các bảng
a. Bảng class
ClassId | ClassName |
---|---|
1 | A1 |
2 | A2 |
3 | A3 |
4 | A4 |
5 | A5 |
b. Bảng student
StudentId | StudentName | BirthDate (dd/mm/yyyy) | ClassId |
---|---|---|---|
1 | Toàn Ngô Vĩnh | 01/01/1992 | 1 |
2 | Nguyễn Văn Test | 08/06/1993 | 3 |
3 | Nguyễn Văn B | 10/02/2001 | 4 |
4 | Nguyễn Văn C | 30/06/1998 | 1 |
5 | Nguyễn Văn D | 24/08/1995 | 2 |
c. Bảng subject
SubjectId | SubjectName | SessionCount |
---|---|---|
1 | C Programming | 20 |
2 | HTML/CSS | 15 |
3 | Database Management | 30 |
d. Bảng result
StudentId | SubjectId | Mark |
---|---|---|
1 | 1 | 8 |
1 | 2 | 7 |
2 | 3 | 5 |
3 | 2 | 7 |
4 | 3 | 8 |
5 | 2 | 4 |