SQLite - INSERT Query

Xin chào, những người đam mê SQL! Hôm nay, chúng ta sẽ cùng khám phá thế giới kỳ diệu của SQLite và câu lệnh INSERT. Là giáo viên máy tính ở khu phố gần bạn, tôi rất vui mừng được hướng dẫn bạn trong hành trình này. Đừng lo lắng nếu bạn mới bắt đầu học lập trình - chúng ta sẽ bắt đầu từ những điều cơ bản và dần dần nâng cao. Vậy, hãy lấy một tách cà phê (hoặc trà, nếu đó là sở thích của bạn), và chúng ta cùng bắt đầu!

SQLite - INSERT Query

Hiểu về câu lệnh INSERT

Câu lệnh INSERT giống như người giữ cửa của buổi tiệc cơ sở dữ liệu của bạn. Nó chịu trách nhiệm thêm dữ liệu mới vào bảng của bạn. Hãy tưởng tượng nó như việc giới thiệu những vị khách mới vào câu lạc bộ thông tin riêng tư của bạn.

Cú pháp cơ bản

Hãy bắt đầu với dạng đơn giản nhất của câu lệnh INSERT:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

Dưới đây là ý nghĩa của từng phần:

  • INSERT INTO: Đây là cách chúng ta告诉 SQLite rằng chúng ta muốn thêm dữ liệu mới.
  • table_name: Tên của bảng mà chúng ta đang thêm dữ liệu.
  • (column1, column2, ...): Các cột mà chúng ta đang điền dữ liệu mới.
  • VALUES: Từ khóa này giới thiệu dữ liệu thực tế mà chúng ta đang chèn.
  • (value1, value2, ...): Các giá trị tương ứng với mỗi cột.

Một ví dụ đơn giản

Giả sử chúng ta có một bảng叫做 students với các cột id, name, và age. Dưới đây là cách chúng ta có thể thêm một học sinh mới:

INSERT INTO students (id, name, age)
VALUES (1, 'John Doe', 20);

Câu lệnh này thêm một hàng mới vào bảng students với ID 1, tên "John Doe", và tuổi 20.

Chèn nhiều hàng

Bây giờ, hãy tưởng tượng bạn đang đăng ký một lớp học mới. Bạn không muốn viết riêng câu lệnh INSERT cho từng người, phải không? Tin tốt là! SQLite cho phép bạn chèn nhiều hàng cùng một lúc:

INSERT INTO students (id, name, age)
VALUES
(2, 'Jane Smith', 22),
(3, 'Bob Johnson', 21),
(4, 'Alice Brown', 23);

Câu lệnh này thêm ba học sinh mới vào bảng của chúng ta. Thật hiệu quả phải không?

Chèn dữ liệu mà không chỉ định các cột

Đôi khi, bạn có thể muốn chèn dữ liệu vào tất cả các cột của bảng. Trong trường hợp này, bạn có thể bỏ qua việc chỉ định tên các cột:

INSERT INTO students
VALUES (5, 'Charlie Wilson', 24);

Nhưng hãy cẩn thận! Câu lệnh này chỉ hoạt động nếu bạn đang cung cấp giá trị cho tất cả các cột trong đúng thứ tự. Nó giống như giải một puzzle - tất cả các mảnh phải khớp hoàn hảo.

Sử dụng giá trị mặc định

SQLite cho phép bạn đặt giá trị mặc định cho các cột khi bạn tạo bảng. Nếu bạn không chỉ định giá trị cho một cột như vậy trong quá trình chèn, SQLite sẽ sử dụng giá trị mặc định.

Giả sử bảng students của chúng ta có một cột status với giá trị mặc định là 'Active':

INSERT INTO students (id, name, age)
VALUES (6, 'David Lee', 22);

Trong trường hợp này, status cho David Lee sẽ tự động được đặt là 'Active'.

Chèn dữ liệu từ bảng khác

Bây giờ, hãy cùng xem xét điều thực sự thú vị! SQLite cho phép bạn chèn dữ liệu từ một bảng vào bảng khác. Điều này rất hữu ích khi bạn làm việc với nhiều bảng liên quan.

Cú pháp cơ bản

INSERT INTO table1 (column1, column2, ...)
SELECT column1, column2, ...
FROM table2
WHERE condition;

Một ví dụ thực tế

Hãy tưởng tượng chúng ta có hai bảng: studentsnew_enrollments. Chúng ta muốn thêm tất cả các học sinh mới vào bảng students:

INSERT INTO students (name, age)
SELECT student_name, student_age
FROM new_enrollments
WHERE enrollment_date = '2023-09-01';

Câu lệnh này chèn tất cả học sinh từ new_enrollments đã đăng ký vào ngày 1 tháng 9 năm 2023 vào bảng students.

Các nguyên tắc tốt nhất và lời khuyên

  1. Luôn kiểm tra dữ liệu: Trước khi chèn, hãy chắc chắn rằng dữ liệu của bạn là chính xác và ở định dạng đúng.

  2. Sử dụng các giao dịch: Đối với nhiều lần chèn, hãy bọc chúng trong một giao dịch. Nó giống như đặt tất cả trứng vào một giỏ - nếu một cái bị lỗi, none sẽ không được thực hiện.

  3. Lưu ý các kiểu cột: Đảm bảo dữ liệu bạn đang chèn khớp với các kiểu cột trong bảng của bạn.

  4. Sử dụng các placeholder: Khi làm việc với đầu vào của người dùng, hãy sử dụng các placeholder để ngăn chặn các cuộc tấn công SQL injection.

  5. Xử lý lỗi một cách tinh tế: Luôn sẵn sàng cho các lỗi tiềm ẩn và xử lý chúng một cách phù hợp.

Các phương pháp chèn phổ biến

Dưới đây là bảng tóm tắt các phương pháp chèn phổ biến mà chúng ta đã thảo luận:

Phương pháp Mô tả Ví dụ
Chèn cơ bản Chèn một hàng đơn INSERT INTO students (id, name) VALUES (1, 'John');
Chèn nhiều hàng Chèn nhiều hàng cùng một lúc INSERT INTO students VALUES (2, 'Jane'), (3, 'Bob');
Chèn mà không chỉ định các cột Chèn dữ liệu cho tất cả các cột INSERT INTO students VALUES (4, 'Alice', 20);
Chèn với DEFAULT Sử dụng giá trị mặc định cho các cột không chỉ định INSERT INTO students (id, name) VALUES (5, 'Charlie');
Chèn từ SELECT Chèn dữ liệu từ bảng khác INSERT INTO students SELECT * FROM new_students;

Kết luận

Và thế là bạn đã có nó, các bạn! Chúng ta đã cùng nhau hành trình qua thế giới của các câu lệnh INSERT trong SQLite. Từ các chèn đơn giản đến các thao tác phức tạp, bạn现在已经 có các công cụ để làm đầy cơ sở dữ liệu của mình một cách tinh tế.

Nhớ rằng, thực hành làm nên完美. Đừng ngần ngại thử nghiệm các câu lệnh này trong một môi trường an toàn. Ai biết được? Bạn có thể khám phá ra một số tuyệt kỹ của riêng bạn!

Chúc các bạn may mắn trong việc lập trình, và mong rằng cơ sở dữ liệu của bạn luôn đầy ắp và không có lỗi!

Credits: Image by storyset