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

CHÈN VÀO là gì?

CHÈN VÀO dùng để lưu trữ dữ liệu trong 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.
  • Kiểu dữ liệu số - tất cả các giá trị số phải được cung cấp trực tiếp mà không đặt chúng trong dấu ngoặc đơn hoặc dấu 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'.


Ví dụ:

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 Hội chợ 0938867763
Leslie Winkle 14/02/1984 Nam 0987636553
Howard Wolowitz 24/08/1981 Nam South Park PO Box 4563 0987786553 lwolowitz@email.me

Hãy INSERT từng dữ liệu một. Chúng ta sẽ bắt đầu với Leonard Hofstadter. Chúng tôi sẽ coi số liên hệ 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. Điều này là do giá trị sẽ được coi là giá trị số và số 0 (XNUMX) ở đầu sẽ bị loại bỏ vì nó không có ý nghĩa.

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

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

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


Việc thay đổi thứ tự các cột không ảnh hưởng đến truy vấn INSERT trong MySQL miễn là các giá trị chính xác đã được ánh xạ tới đúng cột.

Truy vấn hiển thị dưới đây thể hiện quan điểm trên.

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 sẽ 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, có cung cấp ngày sinh. Giá trị ngày phải được đặt trong dấu ngoặc đơn sử dụng đị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');

Tất cả các truy vấn trên đã chỉ định các cột và ánh xạ chúng tới các giá trị trong MySQL chèn tuyên bố. 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 các cột trong bảng. MySQL chèn truy vấn.

Thí dụ:-

INSERT INTO `members`  VALUES (9,'Howard Wolowitz','Male','1981-08-24',
'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]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 của 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

Lưu ý rằng số liên lạc của Leonard Hofstadter đã bỏ số 0 (0) khỏi số liên lạc. Các số liên hệ khác không bỏ số XNUMX (XNUMX) ở đầu.

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 hãy xem một ví dụ thực tế. Chúng ta sẽ tạo một bảng giả cho các danh mục phim để minh họa. Chúng ta sẽ gọi bảng danh mục mới là categories_archive. Đoạn mã được hiển thị 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`))

Thực thi đoạn script trên để tạo bảng.

Bây giờ chúng ta hãy chèn tất cả các hàng từ bảng danh mục vào bảng lưu trữ danh mục. Đoạn mã được hiển thị bên dưới giúp chúng ta thực hiện điều đó.

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

Thực thi tập lệnh trên sẽ chèn tất cả các hàng từ bảng danh mục vào bảng lưu trữ danh mục. Lưu ý rằng cấu trúc bảng phải giống nhau để tập lệnh hoạt động. Một tập lệnh mạnh mẽ hơn là tập lệnh ánh xạ tên cột trong bảng chèn vào các tên trong bảng chứa dữ liệu.

Truy vấn hiển thị bên dưới thể hiện cách sử dụng của nó.

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

Thực hiện truy vấn SELECT

SELECT * FROM `categories_archive`

cho kết quả như hình dưới đây.

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.

Hàm chèn vào bảng trong SQL có thể được sử dụng để thực hiện các kiểu truy vấn sau:

  • Chèn
  • Chọn
  • Cập nhật
  • xóa

Cú pháp của nó như sau.

mysqli_query($db_handle,$query);

ĐÂY,

“mysqli_query(…)” là hàm thực thi các truy vấn SQL.

“$query” là truy vấn SQL được thực thi

“$link_identifier” là tùy chọn, nó có thể được sử dụng để chuyển vào liên kết kết nối máy chủ

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);
	}
}

Tổng kết

  • Lệnh INSERT được sử dụng để thêm dữ liệu mới vào bảng. MySql sẽ thêm một hàng mới sau khi lệnh được thực thi.
  • Các giá trị ngày và chuỗi phải được đặt trong dấu ngoặc đơn.
  • Các giá trị số không cần phải đặt trong dấu ngoặc kép.
  • Lệnh INSERT cũng có thể được sử dụng để chèn dữ liệu từ bảng này sang bảng khác.