SQL INSERT INTO SELECT语句

时间:2020-02-23 14:32:28  来源:igfitidea点击:

在本文中,我们将完全专注于SQL INSERT INTO SELECT语句的工作。

什么是SQL SELECT语句?

SQL SELECT查询显示数据库表中的指定数据。

语法:

Select * from Table;
     OR
Select column-list from Table;

我们可以显示所有数据,也可以显示条件所占据的一部分数据。

例:

Select * from Info;

什么是SQL INSERT语句?

SQL INSERT查询对于根据指定的列和条件将记录插入数据库中很有用。

语法:

Insert into Table(column-list)values(val1,,,,valN);

SQL INSERT INTO SELECT语句的工作

SQL INSERT INTO SELECT语句使我们能够选择数据并将其从一个表复制到另一个表。

语法:

INSERT INTO Table2 (Column-list)
SELECT(Column-list) From Table1;

该语句以以下方式执行:

  • 最初,它从table1的指定列中选择数据。

  • 此外,将从表1的列中选择的数据插入到表2的指定列中

因此,通过使用INSERT INTO SELECT,我们可以从表中复制某些特定数据并将其插入到另一个表中。

table1和table2的现有数据值不受INSERT INTO SELECT查询的影响。

在了解了INSERT INTO SELECT查询的工作原理之后,现在让我们在下面的部分中了解其语法。

通过示例实现INSERT INTO SELECT

最初,我们使用SQL创建查询创建一个表1 —"信息",其中包含以下列:

  • item_id
  • Price
  • Quantity
  • City
create table Info(item_id integer, Price integer, Quantity integer, City varchar(200);

然后,我们使用SQL插入查询将记录插入表1("信息")中。

insert into Info(item_id, Price,Quantity,City) values(1, 150,30,'Pune');
insert into Info(item_id, Price,Quantity,City) values(2, 100,23,'USA');
insert into Info(item_id, Price,Quantity,City) values(3, 250,5,'UAE');
insert into Info(item_id, Price,Quantity,City) values(3, 800,2,'DENMARK');

Select * FROM Info;

输出:表1-"信息"

插入选择表1

此外,我们使用以下数据列创建表2 –"批发":

  • Object_id
  • Price
  • Quantity
  • City
create table Wholesale(Object_id integer, Price integer, Quantity integer, City varchar(200);

使用SQL的INSERT查询将数据值插入"批发"。

insert into Wholesale(Object_id, Price,Quantity,City) values(1, 2,1500,'DENMARK');
insert into Wholesale(Object_id, Price,Quantity,City) values(2, 4,2000,'USA');
insert into Wholesale(Object_id, Price,Quantity,City) values(3, 250,157,'USA');
insert into Wholesale(Object_id, Price,Quantity,City) values(4, 60,645,'DENMARK');
insert into Wholesale(Object_id, Price,Quantity,City) values(5, 25,45,'Pune');

SELECT * FROM Wholesale; 

现在,在此示例中,我们执行SQL INSERT INTO SELECT查询以执行以下操作

  • 从"信息"中选择"价格"和"城市"列的数据值
  • 在"批发"表的"价格"和"城市"列下插入并复制上面选择的记录。
INSERT INTO WholeSale (Price, City)
SELECT Price, City FROM Info;

在此示例中,我们选择并复制了"信息"表中的所有数据值,并将其插入到"批发"表中。

INSERT INTO Wholesale
SELECT * FROM Info;

注意:数据值从表1复制到表2。
但是,表(从中复制数据)的原始数据值保持不变。