Chèn dữ liệu là gì nhỉ?
Hãy tưởng tượng bạn vừa mở một trường đại học. Bạn có một database với các bảng, ví dụ như students để lưu thông tin sinh viên. Đến lúc công bố danh sách sinh viên nhập học và thêm dữ liệu của họ vào bảng. Trong SQL, bạn dùng lệnh INSERT INTO cho việc này. Nó cho phép bạn thêm một dòng mới vào bảng — giống như bạn tự điền một dòng mới trong Excel, nhưng nhanh hơn, mạnh hơn và bằng code luôn!
Thêm dữ liệu không chỉ cho mấy việc cơ bản đâu. Nó dùng khắp nơi — từ lưu đơn hàng trên web shop đến lưu thông tin giao dịch ngân hàng. Còn với trường đại học — đó là danh sách sinh viên, giảng viên và cả thời khóa biểu nữa.
Cú pháp cơ bản của lệnh INSERT INTO
Trong SQL, lệnh INSERT INTO là cách đơn giản để thêm một dòng mới vào bảng. Cùng xem cú pháp cơ bản nhé:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
Giải thích các thành phần:
table_name— tên bảng mà bạn muốn thêm dữ liệu vào.(column1, column2, column3, ...)— danh sách các cột mà bạn sẽ điền giá trị.VALUES (value1, value2, value3, ...)— danh sách giá trị bạn muốn chèn vào các cột tương ứng.
Ví dụ: thêm một sinh viên mới vào bảng students. Giả sử bảng của bạn như sau:
| id | name | age | course |
|---|---|---|---|
| 1 | Otto Song | 18 | Toán học |
Bây giờ thêm sinh viên thứ hai bằng INSERT INTO:
INSERT INTO students (id, name, age, course)
VALUES (2, 'Anna Lin', 19, 'Tin học');
Sau khi chạy lệnh, bảng sẽ như này:
| id | name | age | course |
|---|---|---|---|
| 1 | Otto Song | 18 | Toán học |
| 2 | Anna Lin | 19 | Tin học |
Chèn dữ liệu vào tất cả các cột
Nếu bạn muốn chèn giá trị cho tất cả các cột của bảng, bạn có thể bỏ qua tên cột trong lệnh INSERT INTO. Nhưng nhớ là bạn phải điền giá trị cho từng cột theo đúng thứ tự nhé.
Cú pháp:
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
Ví dụ: bạn thêm một sinh viên nữa vào bảng students:
INSERT INTO students
VALUES (3, 'Dan Sim', 20, 'Vật lý');
Kết quả:
| id | name | age | course |
|---|---|---|---|
| 1 | Otto Song | 18 | Toán học |
| 2 | Anna Lin | 19 | Tin học |
| 3 | Dan Sim | 20 | Vật lý |
Nhưng cách này hơi nguy hiểm nếu cấu trúc bảng thay đổi. Vì vậy nên luôn ghi rõ danh sách cột để tránh lỗi nha.
Thực hành: thêm sinh viên mới
Thử thêm một sinh viên mới vào bảng students của mình, tận dụng hết sức mạnh của lệnh INSERT INTO nhé.
Bước 1: Kiểm tra dữ liệu hiện tại
Trước khi làm gì, nên kiểm tra xem bảng đã có dữ liệu gì chưa. Dùng lệnh SELECT:
SELECT * FROM students;
Bước 2: Thêm sinh viên mới
Bây giờ thêm sinh viên Peter Chi, học ngành "Sinh học", 21 tuổi:
INSERT INTO students (id, name, age, course)
VALUES (4, 'Peter Chi', 21, 'Sinh học');
Bước 3: Kiểm tra lại dữ liệu đã thêm chưa
Lại chạy lệnh lấy toàn bộ dữ liệu:
SELECT * FROM students;
Kết quả:
| id | name | age | course |
|---|---|---|---|
| 1 | Otto Song | 18 | Toán học |
| 2 | Anna Lin | 19 | Tin học |
| 3 | Dan Sim | 20 | Vật lý |
| 4 | Peter Chi | 21 | Sinh học |
Quá đỉnh luôn nhỉ? Giờ Peter đã có mặt trong trường của tụi mình rồi.
Lỗi thường gặp khi dùng INSERT INTO
Không khớp số lượng cột và giá trị. Nếu bạn ghi 4 cột mà chỉ chèn 3 giá trị, SQL sẽ báo lỗi ngay:
INSERT INTO students (id, name, age)
VALUES (5, 'Eva Green', 22, 'Hóa học');
Lỗi: số lượng cột không khớp với số lượng giá trị.
Vi phạm ràng buộc. Nếu cột yêu cầu duy nhất (UNIQUE) hoặc bắt buộc NOT NULL, vi phạm sẽ làm lệnh fail.
Kiểu dữ liệu.
Nếu bạn thử chèn text vào trường số, PostgreSQL cũng sẽ không vui đâu:
INSERT INTO students (id, name, age, course)
VALUES (5, 'Axel Linz', 'hai mươi', 'Hóa học');
Tại sao cần dùng trong dự án thực tế?
Biết lệnh INSERT INTO là skill bạn sẽ dùng gần như ở mọi app có database. Ngoài đời, bạn sẽ dùng lệnh này để:
- Đăng ký user mới vào hệ thống.
- Thêm đơn hàng vào web shop.
- Lưu dữ liệu thanh toán vào hệ thống payment.
- Cập nhật dữ liệu hàng ngày về sinh viên, điểm danh, điểm số trong hệ thống giáo dục.
Mỗi lần app của bạn tương tác với user hoặc nguồn dữ liệu ngoài, lệnh INSERT INTO sẽ là công cụ chính để ghi dữ liệu vào database.
Nếu bạn làm backend hoặc định viết API xử lý dữ liệu, biết chèn dữ liệu bằng SQL là skill cơ bản nhưng cực kỳ quan trọng luôn!
GO TO FULL VERSION