MySQL INSERT INTO Query: Cách thêm hàng vào bảng (Ví dụ)

⚡ Tóm tắt thông minh

MySQL Lệnh INSERT INTO thêm các hàng mới vào bảng, bằng cách chỉ định rõ ràng các cột đích hoặc bằng cách cung cấp giá trị cho từng cột. Việc trích dẫn chính xác các chuỗi, số và ngày tháng sẽ quyết định liệu dữ liệu được lưu trữ có còn nguyên vẹn hay không.

  • 📥 Cú pháp cốt lõi: Lệnh INSERT INTO `table_name`(column_1,column_2) VALUES (value_1,value_2) tạo một hàng mới trong bảng có tên được chỉ định.
  • 🔤 Quy tắc trích dẫn: Các giá trị chuỗi và ngày tháng cần có dấu ngoặc đơn; các giá trị số được cung cấp mà không cần dấu ngoặc kép.
  • 0️⃣ Bẫy số 0 dẫn đầu: Số điện thoại không được đặt trong dấu ngoặc kép sẽ được đọc như một số thông thường, vì vậy số 0 đứng đầu sẽ bị lược bỏ một cách im lặng.
  • 🔀 Thứ tự cột: Thứ tự các cột bên trong truy vấn không quan trọng, miễn là mỗi giá trị đều tương ứng với cột chứa nó.
  • 🕳️ Các cột bị lược bỏ: Các cột không được đưa vào câu lệnh sẽ nhận giá trị NULL hoặc giá trị mặc định đã khai báo của chúng.
  • 📑 Từ bàn này sang bàn khác: Lệnh INSERT INTO … SELECT sao chép các hàng giữa các bảng khi cấu trúc cột trùng khớp.

CHÈN VÀO là gì?

CHÈN VÀO Lệnh INSERT được sử dụng để lưu trữ dữ liệu trong các bảng. Lệnh INSERT tạo một hàng mới trong bảng để lưu trữ dữ liệu. 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.

Cú pháp cơ bản

Hãy xem cú pháp cơ bản của INSERT INTO MySQL chỉ huy:

INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);

tại ĐÂY

  • INSERT INTO `table_name` là lệnh cho biết MySQL máy chủ để thêm một hàng mới vào bảng có tên `table_name.`
  • (column_1,column_2,…) chỉ định các cột sẽ được cập nhật trong cột mới MySQL hàng
  • VALUES (value_1,value_2,…) chỉ định các giá trị được thêm vào hàng mới

Khi cung cấp các giá trị dữ liệu để chèn vào bảng mới, cần lưu ý những điều sau:

  • Kiểu dữ liệu chuỗi – tất cả các giá trị chuỗi phải được đặt trong dấu ngoặc đơn.
  • Các kiểu dữ liệu số – tất cả các giá trị số nên được cung cấp trực tiếp mà không cần đặt trong dấu ngoặc đơn hoặc ngoặc kép.
  • Kiểu dữ liệu ngày – đặt các giá trị ngày trong dấu ngoặc đơn ở định dạng 'YYYY-MM-DD'.

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

Một câu lệnh INSERT duy nhất có thể chứa nhiều hàng. Hãy phân tách mỗi nhóm giá trị bằng dấu phẩy. Một câu lệnh nhanh hơn nhiều câu lệnh khác nhau, vì chỉ mục được cập nhật một lần.

INSERT INTO `categories`(`category_name`,`remarks`) VALUES
('Documentary', 'Factual films'),
('Musical', 'Song driven films');

MySQL Ví dụ truy vấn INSERT INTO

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

Tên đầy đủ Ngày sinh giới Địa chỉ vật lý địa chỉ bưu điện Số liên lạc Email
Leonard Hofstadter Nam Tựa gỗ 0845738767
Sheldon Cooper Nam Tựa gỗ 0976736763
Rajesh Koothrappali Nam Tựa gỗ 0938867763
Leslie Winkle 14/02/1984 Nam Tựa gỗ 0987636553
Howard Wolowitz 24/08/1981 Nam Công viên Phía Nam PO Box 4563 0987786553 lwolowitz@email.me

Chúng ta hãy chèn dữ liệu từng hàng một, bắt đầu với Leonard Hofstadter. Chúng ta sẽ coi số điện thoại liên lạc là kiểu dữ liệu số và không đặt số đó trong dấu ngoặc đơn.

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);

Việc thực thi đoạn mã trên sẽ loại bỏ số 0 khỏi số liên lạc của Leonard, vì giá trị này được coi là dạng số và số 0 đứng đầu không có ý nghĩa gì.

Để tránh những vấn đề như vậy, giá trị phải được đặt trong dấu ngoặc đơn như hình bên dưới.

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');

⚠️ Mẹo: Lưu trữ số điện thoại, mã bưu chính và các thông tin nhận dạng tương tự trong cột văn bản như VARCHAR. Cột số không thể có số 0 đứng đầu.

Thay đổi thứ tự cột

Việc thay đổi thứ tự các cột không ảnh hưởng đến truy vấn INSERT trong MySQLMiễ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 minh họa điểm này.

INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');

Các truy vấn trên đã bỏ qua cột ngày sinh. Theo mặc định, MySQL Chèn giá trị NULL vào các cột bị bỏ qua trong truy vấn INSERT.

Bây giờ chúng ta hãy chèn bản ghi cho Leslie, trong đó có ngày sinh đã được cung cấp. Giá trị ngày tháng phải được đặt trong dấu ngoặc đơn theo định dạng 'YYYY-MM-DD'.

INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');

Bỏ qua danh sách cột

Tất cả các truy vấn trên đều đặt tên cho các cột và ánh xạ chúng đến các giá trị. Nếu chúng ta cung cấp giá trị cho TẤT CẢ các cột trong bảng, danh sách cột có thể được bỏ qua. MySQL chèn truy vấn.

INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24',
'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');

Bây giờ chúng ta hãy sử dụng Câu lệnh SELECT Để xem tất cả các hàng trong bảng thành viên.

SELECT * FROM `members`;
số thành viên_ tên đầy đủ giới ngày sinh địa chỉ vật lý địa chỉ bưu điện số liên lạc_ e-mail
1 Janet Jones Nữ 21-07-1980 Lô đất đường số 4 số XNUMX Túi riêng 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Nữ 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Nam 12-07-1989 Đường số 3 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Nữ 14-02-1984 Đường số 2 23 NULL NULL NULL
5 Leonard Hofstadter Nam NULL Tựa gỗ NULL 845738767 NULL
6 Sheldon Cooper Nam NULL Tựa gỗ NULL 0976736763 NULL
7 Rajesh Koothrappali Nam NULL Tựa gỗ NULL 0938867763 NULL
8 Leslie Winkle Nam 14-02-1984 Tựa gỗ NULL 0987636553 NULL
9 Howard Wolowitz Nam 24-08-1981 Công viên Phía Nam PO Box 4563 0987786553 lwolowitz@email.me

Hãy lưu ý rằng số điện thoại liên lạc của Leonard Hofstadter đã bỏ đi số 0 đứng đầu, đúng như dự đoán. Các số được trích dẫn vẫn giữ nguyên số 0 đó.

Chèn vào một bảng từ một bảng khác

Lệnh INSERT cũng có thể được sử dụng để chèn dữ liệu vào một bảng từ một bảng khác. Cú pháp cơ bản như dưới đây.

INSERT INTO table_1 SELECT * FROM table_2;

Bây giờ chúng ta sẽ tạo một bảng giả cho các danh mục phim, có tên là categories_archive. Đoạn mã bên dưới tạo bảng.

CREATE TABLE `categories_archive` ( `category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`))

Chạy đoạn mã trên để tạo bảng. Bây giờ, hãy chèn tất cả các hàng từ bảng categories vào bảng categories archive.

INSERT INTO `categories_archive` SELECT * FROM `categories`;

Cấu trúc bảng phải giống nhau thì đoạn mã đó mới hoạt động. Một đoạn mã mạnh mẽ hơn sẽ ánh xạ tên cột trong bảng đích với tên cột trong bảng chứa dữ liệu, như minh họa bên dưới.

INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;

Việc thực thi truy vấn SELECT bên dưới sẽ cho ra các kết quả sau.

SELECT * FROM `categories_archive`;
Thể loại ID CATEGORY_NAME nhận xét
1 Phim hài Phim có tính hài hước
2 Romantic Câu chuyện tình yêu
3 Epic Phim cổ tích
4 Kinh dị NULL
5 Khoa học giả tưởng NULL
6 Thriller NULL
7 Hoạt động NULL
8 Hài kịch lãng mạn NULL
9 Phim hoạt hình NULL
10 Phim hoạt hình NULL

Ví dụ PHP: Chèn vào MySQL Bàn

Hàm mysqli_query được sử dụng để thực thi SQL Truy vấn từ PHP. Nó thực thi các câu lệnh INSERT, SELECT, UPDATE và DELETE một cách đồng đều, và có cú pháp như sau.

mysqli_query($db_handle,$query);

ĐÂY,

  • “mysqli_query(…)” là hàm thực thi các truy vấn SQL.
  • “$query” là câu lệnh SQL cần được thực thi.
  • “$db_handle” là liên kết kết nối máy chủ được trả về bởi mysqli_connect.

Ví dụ

$servername = "localhost";
$username = "alex";
$password = "yPXuPT";
$dbname = "afmznf";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO addkeyworddata(link, keyword) VALUES ('https://www.guru99.com/','1000')";

if (mysqli_query($conn, $sql)) {
    echo "New record created successfully" . '<br>';
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

Câu Hỏi Thường Gặp

MySQL Lệnh này từ chối với lỗi trùng lặp dữ liệu. Sử dụng INSERT IGNORE để bỏ qua hàng đó một cách im lặng, hoặc INSERT … ON DUPLICATE KEY UPDATE để cập nhật hàng hiện có.

Chạy lệnh SELECT LAST_INSERT_ID() ngay sau khi chèn dữ liệu, hoặc gọi mysqli_insert_id($conn) trong PHP. Lệnh này trả về khóa AUTO_INCREMENT được tạo cho hàng mới nhất trên kết nối của bạn.

Không bao giờ nối chuỗi dữ liệu người dùng vào chuỗi truy vấn. Hãy sử dụng các câu lệnh đã chuẩn bị với các tham số ràng buộc, để các giá trị được truyền riêng biệt với chuỗi truy vấn. SQL và không thể thực thi như các lệnh.

Đúng vậy. Trợ lý AI có thể chuyển đổi bảng tính hoặc mô tả đơn giản thành câu lệnh INSERT, và MySQL Workbench Có thể chạy chúng. Kiểm tra thứ tự cột và dấu ngoặc kép, vì mô hình có thể tự đoán lược đồ.

Trước tiên hãy chèn nó vào bản sao phát triển. Các hàng do AI tạo ra có thể làm hỏng khóa ngoại, vượt quá độ dài cột hoặc tạo ra ngày tháng không hợp lệ. Chạy hàng loạt trong một giao dịch để có thể hoàn tác.

Tóm tắt bài viết này với: