-
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
例如,在“网店购物系统”数据库中,包含“商品信息”表和“进货信息”表,在这两个表中,存储的数据有相似之处。下面可以将“商品信息”表中的数据,插入到“进货信息”表中,具体的语句如下所示:SELECT column_list
FROM table_list
WHERE search_condirions
USE 网店购物系统
INSERT INTO 进货信息(商品编号,商品名称,采购价格,采购数量)
SELECT * FROM 商品信息
执行该语句,得到结果如图6-3所示。INSERT INTO 进货信息(商品编号,商品名称,采购价格,采购数量)
SELECT * FROM 商品信息
图6-3 插入不同表中的数据
从返回的结果可以知道,在这个实例中,有11条数据记录从“商品信息”表中被选择,然后插入到“进货信息”表中。此时,通过查询“进货信息”表,可以看到所插入的数据内容,如图6-4所示。
图6-4 查询插入的数据
通过在INSERT语句中使用SELECT语句,可以实现把“商品信息”表中的数据复制到“进货信息”表中。即SELECT语句把数据从“商品信息”表的“商品编号”、“商品名称”、“商品价格”、“库存数量”列取出得到一个结果集,然后将这个结果集中的数据依次插入到“进货信息”表的“商品编号”、“商品名称”、“采购价格”、“采购数量”列中。
同样也可以使用带WHERE条件子句的INSERT SELECT语句,将这些数据批量插入到目的表中。例如,将“商品信息”表中“库存数量”>50的数据插入到“进货信息”表中,具体语句代码如下所示:
USE 网店购物系统
INSERT INTO 进货信息(商品编号,商品名称,采购价格,采购数量)
SELECT * FROM 商品信息
WHERE 库存数量 > 50
语句执行后,将有4行受影响,结果如图6-5所示。INSERT INTO 进货信息(商品编号,商品名称,采购价格,采购数量)
SELECT * FROM 商品信息
WHERE 库存数量 > 50
图6-5 带WHERE子句插入数据
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式