Trong quá trình phát triển ứng dụng, việc thêm dữ liệu vào cơ sở dữ liệu là một nhiệm vụ không thể thiếu. Bài viết này sẽ hướng dẫn bạn cách sử dụng câu lệnh INSERT trong SQL cùng với ví dụ cụ thể giúp bạn dễ dàng áp dụng vào dự án của mình.
Cú pháp cơ bản của lệnh INSERT trong SQL
Thêm một bản ghi
Câu lệnh INSERT được sử dụng để thêm một hoặc nhiều bản ghi vào một bảng. Cú pháp cơ bản nhất của câu lệnh INSERT như sau:
1
2
INSERT INTO ten_bang (cot1, cot2, cot3, ...)
VALUES (gia_tri1, gia_tri2, gia_tri3, ...);
Cột cot1
, cot2
, cot3
là tên các cột trong bảng mà bạn muốn thêm dữ liệu vào. gia_tri1
, gia_tri2
, gia_tri3
là các giá trị tương ứng với từng cột.
Thêm nhiều bản ghi cùng lúc
SQL cũng cho phép bạn thêm nhiều bản ghi cùng một lúc, giúp tăng hiệu quả xử lý và giảm thời gian thực thi
1
2
3
4
INSERT INTO ten_bang (cot1, cot2, cot3, ...)
VALUES (gia_tri1_a, gia_tri2_a, gia_tri3_a, ...),
(gia_tri1_b, gia_tri2_b, gia_tri3_b, ...),
...;
Thêm bản ghi bỏ qua liệt kê tên cột
Câu lệnh INSERT trong SQL cũng cho phép bạn thêm dữ liệu mà không cần phải chỉ định tên cột, miễn là bạn cung cấp giá trị cho tất cả các cột theo đúng thứ tự mà chúng xuất hiện trong bảng và đảm bảo rằng mỗi giá trị đều phù hợp với kiểu dữ liệu của cột tương ứng. Dưới đây là cú pháp cho việc này:
1
2
INSERT INTO ten_bang
VALUES (gia_tri1, gia_tri2, gia_tri3, ...);
Lưu ý quan trọng: Khi sử dụng cú pháp này, bạn cần phải rất chắc chắn rằng giá trị bạn cung cấp phải tuân theo đúng trình tự và kiểu dữ liệu của các cột trong bảng. Nếu không, bạn có thể gặp lỗi hoặc thêm dữ liệu sai vào cơ sở dữ liệu.
Ví dụ: Giả sử bảng NhanVien
có ba cột là ten
, tuoi
, và diachi
với thứ tự tương ứng. Bạn có thể thêm một bản ghi mà không cần chỉ định tên cột như sau:
1
2
INSERT INTO NhanVien
VALUES ('Nguyen Van B', 32, 'Hai Phong');
Sau khi thực hiện xong thì ở bảng NhanVien
ta sẽ có kết quả như sau:
ten | tuoi | diachi |
---|---|---|
Nguyen Van B | 32 | Hai Phong |
Thêm dữ liệu từ dữ liệu của một bảng khác
Bạn có thể sử dụng câu lệnh INSERT kết hợp với SELECT để chèn dữ liệu từ một bảng khác. Điều này rất hữu ích khi bạn muốn sao chép dữ liệu giữa các bảng
1
2
3
4
INSERT INTO ten_bang (cot1, cot2, cot3, ...)
SELECT cot1, cot2, cot3, ...
FROM bang_khac
WHERE dieu_kien;
Ví dụ: Sao chép dữ liệu từ bảng UngVien
vào bảng NhanVien
:
1
2
3
4
INSERT INTO NhanVien (ten, tuoi, diachi)
SELECT ten, tuoi, diachi
FROM UngVien
WHERE tuoi < 35;
Đoạn code này thực hiện sao chép dữ liệu từ bảng UngVien
vào bảng NhanVien
, nó chỉ chọn các bản ghi thoả mãn điều kiện tuổi bé hơn 35.
Bảng UngVien
ban đầu:
ten | tuoi | diachi |
---|---|---|
Tran Thi A | 28 | TP HCM |
Le Van C | 34 | Da Nang |
Hoang Thi D | 36 | Ha Noi |
Bảng NhanVien
sau khi thực thi:
ten | tuoi | diachi |
---|---|---|
Tran Thi A | 28 | TP HCM |
Le Van C | 34 | Da Nang |
Câu lệnh INSERT nâng cao
Trong quản lý và thao tác dữ liệu với SQL, ngoài những câu lệnh INSERT cơ bản và trực tiếp, bạn cũng có thể thực hiện các thao tác chèn dữ liệu phức tạp hơn, sử dụng kỹ thuật như AS
để định nghĩa bí danh cho bảng hoặc cột, hoặc EXISTS
để kiểm tra điều kiện tồn tại trước khi chèn. Các kỹ thuật này mở ra khả năng xử lý dữ liệu mạnh mẽ và linh hoạt, cho phép bạn thực hiện các thao tác dữ liệu nâng cao.
Sử Dụng AS Trong Câu Lệnh INSERT
AS
thường được sử dụng trong câu lệnh SELECT
để định nghĩa bí danh cho cột hoặc bảng, giúp câu lệnh dễ đọc và dễ quản lý hơn, đặc biệt khi thực hiện truy vấn liên kết nhiều bảng hoặc cột.
Ví dụ: Giả sử bạn muốn chèn dữ liệu từ bảng UngVien
vào bảng NhanVien
và cần định rõ nguồn dữ liệu:
1
2
3
4
INSERT INTO NhanVien (ten, tuoi, diachi)
SELECT uv.ten, uv.tuoi, uv.diachi
FROM UngVien AS uv
WHERE uv.tuoi < 35;
Trong ví dụ này, AS uv
định nghĩa bí danh uv
cho bảng UngVien
, giúp câu lệnh trở nên rõ ràng và dễ hiểu hơn, đặc biệt khi truy vấn phức tạp với nhiều bảng và cột.
Sử Dụng EXISTS Trong Câu Lệnh INSERT
EXISTS
là một hàm SQL được sử dụng để kiểm tra sự tồn tại của bản ghi trong một bảng dựa trên điều kiện cụ thể. Bạn có thể sử dụng EXISTS
trong câu lệnh INSERT
để kiểm tra điều kiện trước khi thực hiện chèn dữ liệu, đảm bảo rằng chỉ chèn dữ liệu khi thoả mãn điều kiện nhất định.
Ví dụ: Chỉ chèn dữ liệu vào bảng NhanVien
nếu tồn tại ít nhất một bản ghi trong bảng UngVien
có tuổi bé hơn 35:
1
2
3
4
INSERT INTO NhanVien (ten, tuoi, diachi)
SELECT ten, tuoi, diachi
FROM UngVien
WHERE EXISTS (SELECT 1 FROM UngVien WHERE tuoi < 35);
Trong ví dụ này, EXISTS được sử dụng để thực hiện một truy vấn con kiểm tra xem có bất kỳ bản ghi nào trong bảng UngVien
có tuổi bé hơn 35 hay không. Câu lệnh INSERT chỉ được thực hiện nếu kết quả của truy vấn con là đúng, tức là có ít nhất một bản ghi thoả mãn điều kiện.
Qua bài viết này, chúng ta đã tìm hiểu về câu lệnh INSERT trong MySQL, từ những cú pháp cơ bản nhất cho đến các kỹ thuật nâng cao như sử dụng AS và EXISTS. Mỗi ví dụ được cung cấp đều nhằm mục đích giúp bạn hiểu rõ hơn về cách thức hoạt động và áp dụng chúng vào các tình huống cụ thể trong quá trình phát triển ứng dụng và quản lý cơ sở dữ liệu.