Lệnh INSERT INTO trong MySQL

Lệnh INSERT INTO trong MySQL được sử dụng để chèn dữ liệu mới vào một bảng. Bạn có thể chèn một hoặc nhiều hàng dữ liệu cùng lúc vào bảng, với hai cách chính là chèn đầy đủ giá trị cho tất cả các cột hoặc chỉ định một số cột cụ thể.

1. Cấu trúc cơ bản của lệnh INSERT INTO

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
  • table_name: Tên bảng mà bạn muốn chèn dữ liệu vào.
  • (column1, column2, column3, ...): Danh sách các cột mà bạn muốn chèn dữ liệu.
  • VALUES: Từ khóa dùng để chỉ định các giá trị tương ứng với các cột đã liệt kê.

2. Chèn dữ liệu vào tất cả các cột

Nếu bạn chèn dữ liệu cho tất cả các cột trong bảng, bạn không cần chỉ định danh sách cột. Khi đó, các giá trị sẽ được chèn theo thứ tự mà các cột được định nghĩa trong bảng.

Ví dụ: Chèn một hàng dữ liệu vào bảng customers với các cột customer_id, first_name, last_name.

INSERT INTO customers
VALUES (1, 'John', 'Doe');

Trong ví dụ trên, dữ liệu (1, 'John', 'Doe') được chèn vào bảng customers, theo đúng thứ tự các cột.

3. Chèn dữ liệu vào một số cột cụ thể

Nếu bạn chỉ muốn chèn dữ liệu vào một số cột, bạn phải chỉ định rõ các cột đó. Các cột không được chỉ định sẽ nhận giá trị mặc định (hoặc NULL nếu không có giá trị mặc định).

Ví dụ: Chèn dữ liệu chỉ cho cột first_namelast_name trong bảng customers:

INSERT INTO customers (first_name, last_name)
VALUES ('Jane', 'Smith');

Trong ví dụ này, chỉ hai cột first_namelast_name được chèn giá trị. Các cột còn lại như customer_id sẽ nhận giá trị mặc định (hoặc NULL).

4. Chèn nhiều hàng cùng lúc

MySQL hỗ trợ chèn nhiều hàng dữ liệu trong một câu lệnh INSERT INTO bằng cách sử dụng cú pháp VALUES nhiều lần, cách nhau bằng dấu phẩy.

Ví dụ: Chèn nhiều hàng vào bảng customers:

INSERT INTO customers (first_name, last_name)
VALUES ('Alice', 'Brown'),
       ('Bob', 'White'),
       ('Charlie', 'Green');

Câu lệnh này sẽ chèn ba hàng dữ liệu vào bảng customers.

5. Chèn dữ liệu từ một truy vấn khác

MySQL cho phép bạn chèn dữ liệu vào một bảng từ kết quả của một truy vấn khác bằng cách sử dụng cú pháp INSERT INTO ... SELECT.

INSERT INTO table_name (column1, column2, column3)
SELECT value1, value2, value3
FROM another_table
WHERE condition;

Ví dụ: Chèn dữ liệu từ bảng old_customers sang bảng customers:

INSERT INTO customers (first_name, last_name)
SELECT first_name, last_name
FROM old_customers
WHERE signup_year < 2020;

Câu lệnh này chèn các khách hàng cũ có năm đăng ký trước năm 2020 từ bảng old_customers sang bảng customers.

6. Chú ý khi sử dụng lệnh INSERT INTO

  • Dữ liệu hợp lệ: Đảm bảo rằng các giá trị bạn chèn phù hợp với kiểu dữ liệu của cột (ví dụ: số nguyên cho cột INT, chuỗi cho cột VARCHAR,…).
  • Giá trị mặc định: Nếu bạn không chỉ định giá trị cho một cột và cột đó không có giá trị mặc định, MySQL sẽ chèn NULL vào cột đó.
  • Chèn dữ liệu an toàn: Sử dụng chuẩn bị câu lệnh (prepared statements) hoặc biện pháp an toàn chống SQL injection khi làm việc với dữ liệu từ người dùng.

7. Kết luận

Lệnh INSERT INTO trong MySQL rất hữu ích khi bạn muốn chèn dữ liệu mới vào bảng. Bạn có thể chèn dữ liệu cho tất cả hoặc chỉ một số cột, và cũng có thể chèn nhiều hàng cùng lúc hoặc lấy dữ liệu từ truy vấn khác để chèn vào bảng mới. Việc hiểu rõ cách sử dụng lệnh này giúp bạn thao tác với cơ sở dữ liệu một cách hiệu quả và an toàn.