Bài 4: Thêm dữ liệu (INSERT) và Cách Import từ Excel vào SQLite


I. Mục đích (Objectives)

Sau bài học này, người đọc sẽ:

  • Hiểu và sử dụng thành thạo câu lệnh SQL INSERT INTO để thêm dữ liệu mới vào bảng.
  • Biết cách thêm dữ liệu nhanh bằng giao diện đồ họa của DB Browser for SQLite.
  • Quan trọng: Nắm được quy trình chuẩn để Import (nhập khẩu) một danh sách lớn từ file Excel (CSV) vào Database mà không bị lỗi Font chữ tiếng Việt.
  • Nhận biết và xử lý các lỗi thường gặp khi nhập liệu (Trùng khóa chính, sai kiểu dữ liệu).

II. Yêu cầu (Prerequisites)

III. Nội dung chi tiết (Detailed Content)

1. Cách 1: Thêm dữ liệu bằng câu lệnh SQL (INSERT INTO)

Đây là cách cơ bản nhất mà mọi lập trình viên phải biết để viết code trong phần mềm sau này.
Cú pháp tổng quát:

INSERT INTO Ten_Bang (cot_1, cot_2, ...)
VALUES (gia_tri_1, gia_tri_2, ...);

Ví dụ thực hành: Chúng ta sẽ thêm một học sinh tên “Trần Văn An”, điểm trung bình 8.5 vào bảng HocSinh.

  • Bước 1: Mở thẻ Execute SQL.
  • Bước 2: Nhập lệnh sau:

    INSERT INTO HocSinh (ho_ten, diem_tb)
    VALUES ('Trần Văn An', 8.5);
  • Bước 3: Nhấn nút Play (hoặc F5).

Giải thích quan trọng: Tại sao chúng ta không nhập cột id?
Vì ở Bài 3, ta đã thiết lập cột id là INTEGER PRIMARY KEY AUTOINCREMENT. SQLite sẽ tự động điền số tiếp theo (ví dụ: 1) vào cột này. Đây là tính năng rất tiện lợi giúp tránh trùng lặp mã số.

2. Cách 2: Thêm dữ liệu bằng giao diện (Dành cho Test nhanh)

Khi bạn muốn thêm nhanh 1-2 dòng để kiểm thử mà lười gõ code.

  • Bước 1: Chuyển sang thẻ Browse Data (Duyệt dữ liệu).
  • Bước 2: Chọn bảng HocSinh ở ô Table.
  • Bước 3: Nhấn nút New Record (hoặc biểu tượng dấu cộng).
  • Bước 4: Gõ trực tiếp tên và điểm vào các ô trống. Nhớ nhấn Write Changes để lưu lại.

3. Cách 3: Import dữ liệu từ Excel (Dành cho dữ liệu lớn)

Đây là phần hấp dẫn nhất. Giả sử bạn là giáo viên và đã có danh sách lớp 50 em trong Excel, bạn không thể ngồi gõ lệnh INSERT 50 lần được.
Quy trình thực hiện:
Bước 3.1: Chuẩn bị file Excel và chuyển đổi sang CSV
SQLite (và DB Browser) đọc tốt nhất định dạng CSV (Comma Separated Values). Bạn có thể tải file CSV mẫu tại đây.

  1. Mở file Excel, tạo dữ liệu gồm 2 cột: ho_ten và diem_tb (Không cần cột ID vì sẽ để tự tăng).
    Lưu ý: Hàng đầu tiên nên là tên cột (Header).
  2. Vào File > Save As.
  3. Tại ô Save as type, chọn CSV UTF-8 (Comma delimited) (*.csv).
    Cực kỳ quan trọng: Phải chọn UTF-8 để không bị lỗi font tiếng Việt (như ô vuông, dấu hỏi chấm) khi đưa vào Database.

Bước 3.2: Thực hiện Import trong DB Browser

  1. Vào menu File > Import > Table from CSV file…
  2. Chọn file .csv vừa tạo.
  3. Một hộp thoại cấu hình hiện ra. Hãy chú ý các mục sau:

    • Table Name: Đặt tên bảng mới hoặc nhập tên bảng HocSinh có sẵn (nếu muốn nối thêm vào). Khuyên dùng: Đặt tên bảng mới là HocSinh_Temp để kiểm tra trước.
    • Column names in first line: Tích vào ô này (để máy hiểu dòng 1 là tiêu đề, không phải dữ liệu).
    • Encoding: Chọn UTF-8 (thường mặc định là vậy).
  4. Nhấn OK.

Lúc này, bạn vào thẻ Browse Data sẽ thấy toàn bộ danh sách 50 học sinh đã nằm gọn trong Database!

4. Các lỗi thường gặp khi nhập liệu (Troubleshooting)

Trong quá trình thao tác, sinh viên rất dễ gặp các lỗi sau:

  • Lỗi: UNIQUE constraint failed: HocSinh.id

    • Nguyên nhân: Bạn cố tình INSERT một id đã tồn tại (ví dụ: id số 1 đã có, bạn lại lệnh thêm một ông nữa có id là 1).
    • Khắc phục: Bỏ cột id trong câu lệnh INSERT để máy tự tăng, hoặc chọn số khác chưa có.
  • Lỗi: NOT NULL constraint failed: HocSinh.ho_ten

    • Nguyên nhân: Bạn để trống tên học sinh, trong khi lúc thiết kế bảng ta đã tích vào ô NN (Not Null).
    • Khắc phục: Phải điền đầy đủ thông tin bắt buộc.
  • Lỗi Font chữ (khi Import):

    • Nguyên nhân: File CSV lưu dạng ANSI hoặc Excel cũ.
    • Khắc phục: Mở file CSV bằng Notepad, chọn Save As -> Encoding: UTF-8, lưu lại rồi Import lại.

IV. Tổng kết (Summary)

Vậy là cơ sở dữ liệu của chúng ta đã có “thịt có da”.

  • Chúng ta biết cách thêm từng dòng dữ liệu bằng SQL và giao diện.
  • Chúng ta đã giải quyết bài toán nhập liệu số lượng lớn từ Excel – một kỹ năng thực tế rất cần thiết.

Bây giờ, khi đã có dữ liệu trong tay, làm thế nào để tìm kiếm, lọc ra những học sinh có điểm trung bình > 8.0? Hay sắp xếp danh sách từ A-Z? Hẹn gặp lại các bạn trong Bài 5: Truy vấn dữ liệu cơ bản (SELECT) và các điều kiện lọc.

You may also like...

Để lại một bình luận