Tags:

Thêm dữ liệu trong SQL với Insert Into

Mã lệnh Insert Into trong SQL được sử dụng để thêm một dòng dữ liệu trong một bảng. Chúng ta có 2 cách sử dụng Insert Into trong SQL

  • Chỉ chứa các giá trị, lưu ý với cách này các gía trị phải được đặt đúng thứ tự của các cột tương ứng khi tạo bảng.
INSERT INTO table_name VALUES (value1, value2, value3,…);
table_name: Tên của bảng
value1, value2,.. : giá trị của bảng thứ nhất, thứ hai, thứ ba, thứ n

Chứa cả tên cột và giá trị, đối với cách này vì đã chỉ định tên cột, nên thứ tự có thể đảo lộn, tuy nhiên cần đảm bảo giá trị đi đúng theo thứ tự đã khai báo trong mệnh đề Insert Into.

INSERT INTO table_name (column1, column2, column3,..) VALUES ( value1, value2, value3,..);
table_name: Tên của bảng.
column1: Tên cột thứ nhất, thứ 2, thứ n
value1, value2, value3 : giá trị của bảng thứ nhất, thứ hai, thứ ba, thứ n

Ví dụ sử dụng Insert Into

Cho bảng NHANVIEN, Thêm dữ liệu vào bảng NHANVIEN với cú pháp chứa cả tên cột và giá trị.

INSERT INTO NHANVIEN (ID,TEN,TUOI,DIACHI,LUONG) VALUES (1, 'Thanh', 24, 'Haiphong', 2000.00 ); 
 INSERT INTO NHANVIEN (ID,TEN,TUOI,DIACHI,LUONG) VALUES (2, 'Loan', 26, 'Hanoi', 1500.00 ); 
 INSERT INTO NHANVIEN (ID,TEN,TUOI,DIACHI,LUONG) VALUES (3, 'Nga', 24, 'Hanam', 2000.00 ); 
 INSERT INTO NHANVIEN (ID,TEN,TUOI,DIACHI,LUONG) VALUES (4, 'Manh', 29, 'Hue', 6500.00 ); 
 INSERT INTO NHANVIEN (ID,TEN,TUOI,DIACHI,LUONG) VALUES (5, 'Huy', 28, 'Hatinh', 8500.00 ); 
 INSERT INTO NHANVIEN (ID,TEN,TUOI,DIACHI,LUONG) VALUES (6, 'Cao', 23, 'HCM, 4500.00 );

Thêm dữ liệu sử dụng cu pháp chỉ chứa giá trị. 

INSERT INTO NHANVIEN
 VALUES (7, 'LAM', 29, 'Hanoi, 15000.00 );

Kết quả cuối cùng, chúng ta sẽ có bảng NHANVIEN chứa 7 dòng dữ liệu sau

+----+----------+-----+-----------+---------+ 
 | ID |   TEN    | TUOI|  DIACHI   |  LUONG  |
 +----+----------+-----+-----------+---------+
 | 1  |  Thanh   | 24  | Haiphong  | 2000.00 |
 | 2  |  Loan    | 26  | Hanoi     | 1500.00 |
 | 3  |  Nga     | 24  | Hanam     | 2000.00 |
 | 4  |  Mạnh    | 29  | Hue       | 6500.00 |
 | 5  |  Huy     | 28  | Hatinh    | 8500.00 |
 | 6  |  Cao     | 23  | HCM       | 4500.00 |
 | 7  |  Lam     | 29  | Hanoi     | 15000.00|
 +----+----------+-----+-----------+---------+

Sử dụng Insert Into với Select

Chúng ta có thể sử dụng câu lệnh SELECT với câu lệnh INSERT INTO để sao chép các dòng từ một bảng và chèn chúng vào một bảng khác. Việc sử dụng câu lệnh này tương tự như câu lệnh INSERT INTO. Sự khác biệt là câu lệnh SELECT được sử dụng ở đây để chọn dữ liệu từ một bảng khác.

Ví dụ chúng ta có bảng Student

Sao chép toàn bộ dữ liệu

Chúng ta có thể sao chép toàn bộ dữ liệu từ một bảng sang một bảng khác với Insert Into kết hợp với Select.

INSERT INTO first_table SELECT * FROM second_table;

first_table: Table được thêm dữ liệu
second_table: Table bị sao chép dữ liệu

Nếu mình có một bảng LateralStudent mô tả như sau

ROLL_NO NAME ADDRESS PHONE Age
7 SOUVIK DUMDUM XXXXXXXXXX 18
8 NIRAJ NOIDA XXXXXXXXXX 19
9 SOMESH ROHTAK XXXXXXXXXX 20

Khi chạy lệnh mã lệnh dưới đây sẽ sao chép toàn bộ dữ liệu từ LateralStudent sang bảng Student

INSERT INTO Student SELECT * FROM LateralStudent;

Kết quả sẽ là

ROLL_NO NAME ADDRESS PHONE Age
1 Ram Delhi XXXXXXXXXX 18
2 RAMESH GURGAON XXXXXXXXXX 18
3 SUJIT ROHTAK XXXXXXXXXX 20
4 SURESH Delhi XXXXXXXXXX 18
3 SUJIT ROHTAK XXXXXXXXXX 20
2 RAMESH GURGAON XXXXXXXXXX 18
7 SOUVIK DUMDUM XXXXXXXXXX 18
8 NIRAJ NOIDA XXXXXXXXXX 19
9 SOMESH ROHTAK XXXXXXXXXX 20

Sao chép một số cột được chỉ định

Chúng ta có thể sao chép toàn bộ dữ liệu từ một bảng với các cột được chỉ định sang một bảng khác với Insert Into kết hợp với Select.

INSERT INTO Student(ROLL_NO,NAME,Age) SELECT ROLL_NO, NAME, Age FROM LateralStudent;

Câu truy vấn trên sẽ sao chép toàn bộ dữ liệu từ LateralStudent sang Student nhưng chỉ sao chép dữ liệu trong các cột ROLL_NO,NAME,Age). Các cột còn lại sẽ bị NULL.

ROLL_NO NAME ADDRESS PHONE Age
1 Ram Delhi XXXXXXXXXX 18
2 RAMESH GURGAON XXXXXXXXXX 18
3 SUJIT ROHTAK XXXXXXXXXX 20
4 SURESH Delhi XXXXXXXXXX 18
3 SUJIT ROHTAK XXXXXXXXXX 20
2 RAMESH GURGAON XXXXXXXXXX 18
7 SOUVIK null null 18
8 NIRAJ null null 19
9 SOMESH null null 20

Sao chép có điều kiện

Nếu không muốn sao chép toàn bộ dữ liệu, chúng ta chỉ cần thêm các điều kiện vào mệnh đề WHERE để lọc ra các dữ liệu mong muốn.

INSERT INTO Student SELECT * FROM LateralStudent WHERE Age = 18;

Câu truy vấn trên sẽ chỉ sao chép các dữ liệu từ LateralStudent sang Student chỉ khi nó có tuổi từ 18 trở lên.

ROLL_NO NAME ADDRESS PHONE Age
1 Ram Delhi XXXXXXXXXX 18
2 RAMESH GURGAON XXXXXXXXXX 18
3 SUJIT ROHTAK XXXXXXXXXX 20
4 SURESH Delhi XXXXXXXXXX 18
3 SUJIT ROHTAK XXXXXXXXXX 20
2 RAMESH GURGAON XXXXXXXXXX 18
  SOUVIK DUMDUM XXXXXXXXXX 18

Insert nhiều dòng trong SQL 

Nếu muốn thêm dữ liệu nhiều dòng trong SQL thì bạn chỉ cần cung cấp danh sách các giá trị tương ứng cho mỗi dòng cách nhau bởi dấu phẩy.

INSERT INTO table_name(Column1,Column2,Column3,.......) 
VALUES (Value1, Value2,Value3,.....),
        (Value1, Value2,Value3,.....),
         (Value1, Value2,Value3,.....),
         ............................. ;
table_name: Tên table
Column1: tên cột thứ 1, thứ 2, thứ n …
Value1, Value2, Value3 : giá trị cột thứ 1, thứ 2, thứ n

Ví dụ thêm dữ liệu vào bảng Student

INSERT INTO STUDENT(ID, NAME,AGE,GRADE,CITY) VALUES(1,"AMIT KUMAR",15,10,"DELHI"),
                                                   (2,"GAURI RAO",18,12,"BANGALORE"),
                                                   (3,"MANAV BHATT",17,11,"NEW DELHI"),
                                                    (4,"RIYA KAPOOR",10,5,"UDAIPUR");

Kết quả khi SELECT bảng Student

ID NAME AGE GRADE CITY
1 AMIT KUMAR 15 10 DELHI
2 GAURI RAO 16 12 BANGALORE
3 MANAV BHATT 17 11 NEW DELHI
4 RIYA KAPOOR 10 5 UDAIPUR

Nguồn tham khảo

https://www.geeksforgeeks.org/sql-insert-statement/

https://quantrimang.com/lenh-insert-trong-sql-143753

 

5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x