Hướng dẫn cách viết câu lệnh INSERT INTO trong MySQL có ví dụ minh họa

G-LEARNING
G-LEARNING
Apr 27 2020

INSERT INTO là gì?

Mục tiêu chính của các cơ sở dữ liệu chính là lưu trữ dữ liệu dưới dạng bảng. Dữ liệu thường được cung cấp bởi các chương trình ứng dụng chạy trên cơ sở dữ liệu. Để đạt được điều đó, SQL có câu lệnh INSERT được sử dụng dùng để lưu trữ dữ liệu vào bảng. Hay nói cách khác, lệnh INSERT tạo thành một hàng mới trong bảng để lưu trữ dữ liệu. 

Cú pháp cơ bản

Dưới đây là cú pháp cơ bản của câu lệnh INSERT INTO:

Trong đó:

  • INSERT INTO ‘table_name‘: là câu lệnh yêu cầu máy chủ MySQL tạo thêm một hàng mới trong bảng có tên là ‘table_name’
  • (column_1,column_2,…): Chỉ định các cột sẽ được cập nhật trong hàng mới.
  • VALUES (value_1,value_2,…): Chỉ định các giá trị sẽ được thêm vào trong hàng mới.

Khi cung cấp các giá trị dữ liệu được chèn vào trong bảng mới, chúng ta cần xem xét những điều sau đây trong khi xử lý các loại dữ liệu khác nhau:

  • Kiểu dữ liệu chuỗi (String) – tất cả các giá trị chuỗi phải được đặt trong dấu nháy đơn.
  • Kiểu dữ liệu số (Numeric) – tất cả các giá trị số phải được cung cấp trực tiếp (không đi kèm với dấu nháy đơn hoặc dấu ngoặc kép)
  • Kiểu dữ liệu ngày (Date) – Các giá trị này phải được đặt trong dấu nháy đơn ở định dạng ‘YYYY-MM-DD’.

Ví dụ minh họa

Để hiểu rõ và luyện tập tốt hơn phần này, bạn nên tải dữ liệu myflix DB để thực hiện chạy trong MySQL

https://drive.google.com/uc?export=download&id=0B_vqvT0ovzHccjhtdGlrZ0MtZ0k

Giả sử chúng ta có danh sách các thành viên thư viện mới sau đây cần được thêm vào cơ sở dữ liệu: 

Chúng ta sẽ chèn dữ liệu cho từng người một, bắt đầu với Leonard Hofstadter. Trong trường hợp chúng ta xem số liên lạc là kiểu dữ liệu số (numeric) và không đặt chúng trong dấu nháy đơn:

Thực hiện câu lệnh trên sẽ bỏ mất số 0 trong số liên lạc của Leonard. Điều này xảy ra là do số liên lạc được xem là giá trị số (numeric) nên số 0 ở đầu bị loại bỏ vì nó không có ý nghĩa. 

Để tránh những vấn đề trên, giá trị số liên lạc cần phải được đặt trong dấu nháy đơn như câu lệnh ở dưới đây:

Trong trường hợp trên, số 0 sẽ không bị loại bỏ.

Lưu ý là thay đổi thứ tự của các cột sẽ không ảnh hưởng đến câu truy vấn INSERT, miễn là các giá trị chính xác đã được ánh xạ đến các cột chính xác.

Câu truy vấn dưới đây chứng minh điều ở trên:

Câu lệnh trên đã bỏ qua cột ngày sinh “Date of Birth”. Vì vậy theo mặc định, MySQL sẽ chèn các giá trị NULL vào các cột được bỏ qua trong truy vấn INSERT.

Tiếp theo chúng ta chèn bản ghi cho Leslie có ngày sinh được cung cấp. Giá trị ngày phải được đặt trong dấu nháy đơn với định dạng  ‘YYYY-MM-DD’.

Tất cả các truy vấn trên đã chỉ định các cột và ánh xạ chúng thành các giá trị trong câu lệnh INSERT. Nếu chúng ta đang cung cấp giá trị cho tất cả các cột trong bảng, thì chúng ta có thể bỏ qua khai báo các cột khỏi truy vấn INSERT. 

Ví dụ:

Sử dụng câu lệnh SELECT để xem tất cả các hàng trong bảng members:

SELECT * FROM `members`; 

Lưu ý rằng số liên lạc của Leonard đã mất đi số 0 ở đầu trong khi các số liên lạc khác thì không bị mất số 0 đầu tiên. 

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

Câu lệnh INSERT INTO có thể chèn dữ liệu từ một bảng này sang bảng khác với cú pháp cơ bản sau đây:

Giả sử chúng ta muốn tạo một bảng giả cho các danh mục phim cho mục đích trình diễn. Tên gọi của bảng danh mục mới sẽ là categories_archive. Sử dụng truy vấn dưới đây:

Chạy câu lệnh trên sẽ giúp tạo bảng mới.

Tiếp theo chúng ta sẽ chèn tất cả các hàng từ bảng categories vào bảng categories_archive :

Lưu ý rằng cấu trúc của hai bảng phải giống nhau để tập lệnh hoạt động. 

Một tập lệnh mạnh hơn là tập lệnh ánh xạ các tên cột trong bảng chèn vào các tập lệnh trong bảng chứa dữ liệu. Câu truy vấn dưới đây sẽ cho thấy việc sử dụng nó :

Chạy câu lệnh SELECT:

Kết quả sẽ hiện ra như sau:

Kết luận

  • Câu lệnh INSERT dùng để thêm dữ liệu mới cho một bảng.
  • Kiểu dữ liệu chuỗi và kiểu dữ liệu ngày nên được đặt trong dấu nháy đơn.
  • Kiểu dữ liệu số không cần phải được đặt trong dấu ngoặc.
  • Lệnh INSERT có thể được sử dụng để chèn dữ liệu từ bảng này sang bảng khác.

Các bạn có thể tham khảo thêm các bài viết khác về cách sử dụng MySQL:

Hướng dẫn sử dụng câu lệnh SELECT trong MySQL qua các ví dụ

Hướng dẫn câu lệnh DELETE trong MySQL và ví dụ minh họa

Hướng dẫn câu lệnh UPDATE trong MySQL và các ví dụ

Đánh giá bài viết này

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

Bài viết liên quan

HƯỚNG DẪN VỀ LỆNH LIMIT VÀ OFFSET TRONG MySQL

HƯỚNG DẪN VỀ LỆNH LIMIT VÀ OFFSET TRONG MySQL

CÁCH SỬ DỤNG TỰ ĐỘNG TĂNG (AUTO_INCREMENT) TRONG MySQL

CÁCH SỬ DỤNG TỰ ĐỘNG TĂNG (AUTO_INCREMENT) TRONG MySQL

HƯỚNG DẪN CÁC KIỂU CỦA LỆNH JOIN TRONG MySQL: INNER, OUTER, LEFT, RIGHT, CROSS

HƯỚNG DẪN CÁC KIỂU CỦA LỆNH JOIN TRONG MySQL: INNER, OUTER, LEFT, RIGHT, CROSS

Hướng dẫn tìm hiểu về NULL và NOT NULL trong MySQL

Hướng dẫn tìm hiểu về NULL và NOT NULL trong MySQL

Tìm hiểu về mệnh đề GROUP BY và HAVING trong MySQL

Tìm hiểu về mệnh đề GROUP BY và HAVING trong MySQL

Hướng dẫn cách sử dụng UNION trong MySQL

Hướng dẫn cách sử dụng UNION trong MySQL

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội