MySQL INSERT INTO Query: Cách thêm Hàng trong Bảng (Ví dụ)

Mục lục:

Anonim

INSERT INTO là gì?

INSERT INTO đượ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 lệnh INSERT INTO MySQL:

CHÈN VÀO `tên_bảng` (cột 1, cột 2,…) GIÁ TRỊ (giá trị 1, giá trị 2,…);

ĐÂY

  • INSERT INTO `table_name` là lệnh yêu cầu máy chủ MySQL thêm một hàng mới vào một 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 MySQL mới
  • VALUES (giá trị 1, giá trị 2,…) chỉ định các giá trị sẽ đượ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 xem xét 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 nháy đơ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 cần đặt chúng trong dấu ngoặc kép hoặc đơn.
  • Các kiểu dữ liệu ngày - bao gồm các giá trị ngày trong dấu ngoặc kép ở định dạng 'YYYY-MM-DD'.

Thí dụ:

Giả sử rằng 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.

Tên đầy đủ Ngày sinh giới tính Địa chỉ vật lý địa chỉ bưu điện Số liên lạc Địa chỉ email
Leonard Hofstadter Nam giới Tựa gỗ 0845738767
Sheldon Cooper Nam giới Tựa gỗ 0976736763
Rajesh Koothrappali Nam giới Fairview 0938867763
Leslie Winkle 14/02/1984 Nam giới 0987636553
Howard Wolowitz 24/08/1981 Nam giới Công viên Phía Nam Hộp thư bưu điện 4563 0987786553 Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.

Hãy CHÈN dữ liệu từng cái 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 kép.

CHÈN VÀO `thành viên` (` full_names`, `giới tính`,` physical_address`, `contact_number`) VALUES ('Leonard Hofstadter', 'Nam', 'Woodcrest', 0845738767);

Việc thực thi tập lệnh trên sẽ giảm số 0 từ 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ố không (0) ở đầu bị loại bỏ vì nó không quan trọng.

Để tránh những vấn đề như vậy, giá trị phải được đặt trong dấu ngoặc kép như hình dưới đây:

CHÈN VÀO `thành viên` (` full_names`, `giới tính`,` physical_address`, `contact_number`) VALUES ('Sheldon Cooper', 'Nam', 'Woodcrest', '0976736763'); 

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

Thay đổi thứ tự của 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ạ đến các cột chính xác.

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

CHÈN VÀO `thành viên` (` contact_number`, `giới tính`,` full_names`, `physical_address`) VALUES ('0938867763', 'Nam', '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 các giá trị NULL vào các cột bị bỏ qua trong truy vấn INSERT.

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

CHÈN VÀO `thành viên` (` full_names`, `date_of_birth`,` world`, `physical_address`,` contact_number`) VALUES ('Leslie Winkle', '1984-02-14', 'Nam', 'Woodcrest', ' 0987636553 '); 

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 chèn MySQL. 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 khỏi truy vấn chèn MySQL.

Thí dụ:-

CHÈN VÀO `thành viên` VALUES (9, 'Howard Wolowitz', 'Nam', '1981-08-24',
'SouthPark', 'PO 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 thành viên.

SELECT * FROM `members`; 
số_thành viên tên đầy đủ giới tính ngày sinh địa chỉ vật lý địa chỉ bưu điện số contct_ e-mail
1 Janet Jones Giống cái 21-07-1980 Khu phố đầu tiên số 4 Túi riêng 0759 253 542 Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.
2 Janet Smith Jones Giống cái 23-06-1980 Melrose 123 VÔ GIÁ TRỊ VÔ GIÁ TRỊ Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.
3 Robert Phil Nam giới 12-07-1989 3 đường 34 VÔ GIÁ TRỊ 12345 Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.
4 Gloria Williams Giống cái 14-02-1984 2 Đường 23 VÔ GIÁ TRỊ VÔ GIÁ TRỊ VÔ GIÁ TRỊ
5 Leonard Hofstadter Nam giới VÔ GIÁ TRỊ Tựa gỗ VÔ GIÁ TRỊ 845738767 VÔ GIÁ TRỊ
6 Sheldon Cooper Nam giới VÔ GIÁ TRỊ Tựa gỗ VÔ GIÁ TRỊ 976736763 VÔ GIÁ TRỊ
7 Rajesh Koothrappali Nam giới VÔ GIÁ TRỊ Tựa gỗ VÔ GIÁ TRỊ 938867763 VÔ GIÁ TRỊ
số 8 Leslie Winkle Nam giới 14-02-1984 Tựa gỗ VÔ GIÁ TRỊ 987636553 VÔ GIÁ TRỊ
9 Howard Wolowitz Nam giới 24-08-1981 Công viên Phía Nam Hộp thư bưu điện 4563 987786553 Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.

Lưu ý rằng số liên lạc của Leonard Hofstadter đã bỏ số không (0) khỏi số liên lạc. Các số liên lạc khác chưa bỏ số 0 (0) ở đầ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ư hình dưới đây.

CHÈN VÀO bảng_1 CHỌN * TỪ bảng_2; 

Bây giờ chúng ta hãy xem xét một ví dụ thực tế. Chúng tôi sẽ tạo một bảng giả cho các hạng mục phim nhằm mục đích trình diễn. Chúng tôi sẽ gọi các danh mục mới là bảng Category_archive. Tập lệnh hiển thị bên dưới tạo bảng.

TẠO BẢNG HIỆU 

Thực thi đ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 danh mục vào bảng lưu trữ danh mục. Kịch bản hiển thị bên dưới giúp chúng tôi đạt được điều đó.

CHÈN VÀO `danh mục_lưu trữ` CHỌN * TỪ` danh mục`; 

Việc 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ác cấu trúc bảng sẽ phải giống nhau để tập lệnh hoạt động. Một tập lệnh mạnh mẽ hơn là một tập lệnh ánh xạ tên cột trong bảng chèn với những tên trong bảng chứa dữ liệu.

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

CHÈN VÀO `category_archive` (category_id, category_name, comments) CHỌN category_id, category_name, ghi chú TỪ` danh mục`;

Thực thi truy vấn SELECT

CHỌN * TỪ `danh mục_ lưu trữ`

cho kết quả sau được hiển thị bên dưới.

Thể loại ID tên danh mục nhận xét
1 Phim hài Phim hài hước
2 Lãng mạn Câu chuyện tình yêu
3 Sử thi Câu chuyện nổi bật phim
4 Kinh dị VÔ GIÁ TRỊ
5 Khoa học viễn tưởng VÔ GIÁ TRỊ
6 Phim kinh dị VÔ GIÁ TRỊ
7 Hoạt động VÔ GIÁ TRỊ
số 8 Hài kịch lãng mạn VÔ GIÁ TRỊ
9 Phim hoạt hình VÔ GIÁ TRỊ
10 Phim hoạt hình VÔ GIÁ TRỊ

Ví dụ PHP: Chèn vào bảng MySQL

Hàm mysqli_query được sử dụng để thực thi các truy vấn SQL.

Hàm có thể được sử dụng để thực thi các kiểu truy vấn sau đây;

  • Chèn
  • Lựa chọn
  • Cập nhật
  • xóa bỏ

Nó có cú pháp 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 sẽ đượ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ủ

Thí dụ

$servername = "localhost";$username = "alex";$password = "yPXuPT";$dbname = "afmznf";// Create connection$conn = mysqli_connect($servername, $username, $password, $dbname);// Check connectionif (!$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".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}

Tóm lược

  • 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 khi lệnh được thực thi.
  • Giá trị ngày và chuỗi phải được đặt trong dấu ngoặc kép.
  • Các giá trị số không cần đặ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 vào bảng khác.