VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > T-SQL >
  • sql语句大全之使用INSERT SELECT语句

使用INSERT    SELECT语句sql语句大全

使用INSERT…SELECT语句可以把其他数据表的行记录添加到现有的表中,同时,可以显示执行多行插入。也就是说,INSERT…SELECT语句可以完成一次插入一个数据块的功能。该语句相比使用单独的INSERT语句效率要高得多。
使用INSERT…SELECT语句时应该遵循如下的原则:
l   在最外面的查询表中插入所有满足SELECT语句的行。
l   必须检验要插入新行的表是否在数据库中。
l   必须保证接受新值的表中列的数据类型与源表中相应列的数据类型一致。
l   必须明确是否存在默认值,或所有被忽略的列是否允许为空值。如果不允许空值,必须为这些列提供值。
INSERT…SELECT语句的基本语法如下:
INSERT  table_name
SELECT column_list
FROM table_list
WHERE search_condirions
例如,在“网店购物系统”数据库中,包含“商品信息”表和“进货信息”表,在这两个表中,存储的数据有相似之处。下面可以将“商品信息”表中的数据,插入到“进货信息”表中,具体的语句如下所示:
USE 网店购物系统
INSERT INTO 进货信息(商品编号,商品名称,采购价格,采购数量)
SELECT * FROM 商品信息
执行该语句,得到结果如图6-3所示。

图6-3  插入不同表中的数据
从返回的结果可以知道,在这个实例中,有11条数据记录从“商品信息”表中被选择,然后插入到“进货信息”表中。此时,通过查询“进货信息”表,可以看到所插入的数据内容,如图6-4所示。

图6-4  查询插入的数据
通过在INSERT语句中使用SELECT语句,可以实现把“商品信息”表中的数据复制到“进货信息”表中。即SELECT语句把数据从“商品信息”表的“商品编号”、“商品名称”、“商品价格”、“库存数量”列取出得到一个结果集,然后将这个结果集中的数据依次插入到“进货信息”表的“商品编号”、“商品名称”、“采购价格”、“采购数量”列中。
同样也可以使用带WHERE条件子句的INSERT SELECT语句,将这些数据批量插入到目的表中。例如,将“商品信息”表中“库存数量”>50的数据插入到“进货信息”表中,具体语句代码如下所示:
USE 网店购物系统
INSERT INTO 进货信息(商品编号,商品名称,采购价格,采购数量)
SELECT * FROM 商品信息
WHERE 库存数量 > 50
语句执行后,将有4行受影响,结果如图6-5所示。

图6-5  带WHERE子句插入数据

相关教程