Bài đăng nổi bật

INSERT INTO là gì?

Mục tiêu chính của hệ thống cơ sở dữ liệu là lưu trữ dữ liệu trong các 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ó lệnh INSERT được sử dụng để lưu trữ dữ liệu vào bảng. Lệnh  INSERT tạo một hàng mới  trong bảng để lưu trữ dữ liệu.

Cú pháp cơ bản

Chúng ta hãy xem cú pháp cơ bản của lệnh SQL INSERT được hiển thị bên dưới.
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
ĐÂY
  • INSERT INTO `table_name`  là lệnh yêu cầu máy chủ MySQL thêm hàng mới vào một bảng có tên là` tên_bảng`.
  • (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 hàng mới

Khi cung cấp các giá trị dữ liệu được chèn vào bảng mới, cần xem xét các điều sau đây trong khi xử lý các loại dữ liệu khác nhau.
  • Các kiểu dữ liệu chuỗi  - tất cả các giá trị chuỗi phải được đặt trong các dấu ngoặc đơn.
  • Các 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 kèm theo chúng trong dấu ngoặc đơn hoặc dấu ngoặc kép.
  • Các kiểu dữ liệu ngày  - bao gồm các giá trị ngày trong các dấu ngoặc đơn ở định dạng 'YYYY-MM-DD'.

Thí dụ:
Giả sử rằng chúng tôi 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.
Full namesDate of BirthgenderPhysical addressPostal addressContact numberEmail Address
Leonard HofstadterMaleWoodcrest0845738767
Sheldon CooperMaleWoodcrest0976736763
Rajesh KoothrappaliMaleFairview0938867763
Leslie Winkle14/02/1984Male0987636553
Howard Wolowitz24/08/1981MaleSouth ParkP.O. Box 45630987786553lwolowitz@email.me
  
Cho phép dữ liệu INSERT từng cái một. Chúng tôi sẽ bắt đầu với Leonard Hofstadter. Chúng tôi sẽ coi số liên lạc là một kiểu dữ liệu số và không bao gồm số trong các dấu ngoặc đơn.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);   
Thực hiện đoạn script trên giảm 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ố 0 (0) ở đầu được loại bỏ vì nó không đáng kể.
Để tránh những vấn đề như vậy, giá trị phải được đặt trong dấu ngoặc đơn như hình dưới đây -
XÁC NHẬN VÀO `thành viên` (` full_names`, `giới tính`,` vật lý_address`, `contact_number`) GIÁ TRỊ ('Sheldon Cooper', 'Nam', 'Woodcrest', '0976736763'); 
 Trong trường hợp trên, không (0) sẽ không bị loại bỏ
Thay đổi thứ tự của các cột không ảnh hưởng đến truy vấn INSERT miễn là các giá trị chính xác đã được ánh xạ tới các cột chính xác.
 Các truy vấn hiển thị dưới đây chứng minh điểm trên.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763'); 
Các truy vấn trên đã bỏ qua ngày sinh,  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.
 Bây giờ chúng ta hãy 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 ngoặc đơn bằng cách sử dụng định dạng 'YYYY-MM-DD'.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`)VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');   
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 câu lệnh chèn. Nếu chúng tôi đang cung cấp các giá trị cho TẤT CẢ các cột trong bảng, thì chúng tôi có thể bỏ qua các cột khỏi truy vấn chèn.
Thí dụ:-
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');   
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. CHỌN * TỪ `thành viên`;
membership_numberfull_namesgenderdate_of_birthphysical_addresspostal_addresscontct_numberemail
1Janet JonesFemale21-07-1980First Street Plot No 4Private Bag0759 253 542janetjones@yagoo.cm
2Janet Smith JonesFemale23-06-1980Melrose 123NULLNULLjj@fstreet.com
3Robert PhilMale12-07-19893rd Street 34NULL12345rm@tstreet.com
4Gloria WilliamsFemale14-02-19842nd Street 23NULLNULLNULL
5Leonard HofstadterMaleNULLWoodcrestNULL845738767NULL
6Sheldon CooperMaleNULLWoodcrestNULL976736763NULL
7Rajesh KoothrappaliMaleNULLWoodcrestNULL938867763NULL
8Leslie WinkleMale14-02-1984WoodcrestNULL987636553NULL
9Howard WolowitzMale24-08-1981SouthParkP.O. Box 4563987786553lwolowitz@email.me
Lưu ý số liên lạc của Leonard Hofstadter đã giảm số 0 (0) khỏi số liên lạc. Các số liên lạc khác đã không giảm số 0 (0) lúc đầ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 là 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 thể loại phim cho mục đích trình diễn. Chúng tôi sẽ gọi bảng danh mục mới chuyên mục_archive. Kịch bản hiển thị dưới đây 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 hiện đ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. Kịch bản hiển thị dưới đây giúp chúng tôi đạt được điều đó.
INSERT INTO `categories_archive` SELECT * FROM `categories`;  
Thực thi đoạn mã trên 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 ý các cấu trúc bảng sẽ phải giống nhau để kịch bản 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ác truy vấn hiển thị dưới đây cho thấy việc sử dụng 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 CHỌN
SELECT * FROM `categories_archive`
đưa ra các kết quả sau đây.
category_idcategory_nameremarks
1ComedyMovies with humour
2RomanticLove stories
3EpicStory acient movies
4HorrorNULL
5Science FictionNULL
6ThrillerNULL
7ActionNULL
8Romantic ComedyNULL
9CartoonsNULL
10CartoonsNULL

Tóm lược

  • Lệnh INSERT được sử dụng để thêm dữ liệu mới vào bảng
  • 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 được đặ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.

Post a Comment

أحدث أقدم