
我想问下数据库INSERT语句中的union all有什么用呢?
如题~insertintoWORKERSselect'A',25,'统计',3000,1unionallselect'B',30,'设计规划',9000,2unional...
如题~
insert into WORKERS
select 'A',25,'统计',3000,1 union all
select 'B',30,'设计规划',9000,2 union all
select 'C',20,'代码员',2000,3
我只知道这样相当于3条insert插入到表中,但是为什么能这样做呢?insert语句怎么后面可以跟这个多个select子句呢》谁能解释下~谢谢~ 展开
insert into WORKERS
select 'A',25,'统计',3000,1 union all
select 'B',30,'设计规划',9000,2 union all
select 'C',20,'代码员',2000,3
我只知道这样相当于3条insert插入到表中,但是为什么能这样做呢?insert语句怎么后面可以跟这个多个select子句呢》谁能解释下~谢谢~ 展开
4个回答
展开全部
1:union 相当于数学里面的并集,另外还有expect(差集),Intersect交集分别返回两个表的差集和交集
2:insert into WORKERS
select 'A',25,'统计',3000,1 union all
select 'B',30,'设计规划',9000,2 union all
select 'C',20,'代码员',2000,3
此处union all相当于将三条数据并起来通过一个insert语句插入数据库的,
亦即是执行了三个inser into WORKERS values('A',25,'统计',3000,1);语句
3,以上是单值插入,如果要将一张表满足某一条件的所有数据插入另一张表的话就要用到insert .....into.....select.....from语句了
比如:insert into 目标表(字段1,字段2,字段3) select 字段1_1,字段2_1,字段3_1 from 源表 where 条件表达式
4,有其他疑问可以问我!
2:insert into WORKERS
select 'A',25,'统计',3000,1 union all
select 'B',30,'设计规划',9000,2 union all
select 'C',20,'代码员',2000,3
此处union all相当于将三条数据并起来通过一个insert语句插入数据库的,
亦即是执行了三个inser into WORKERS values('A',25,'统计',3000,1);语句
3,以上是单值插入,如果要将一张表满足某一条件的所有数据插入另一张表的话就要用到insert .....into.....select.....from语句了
比如:insert into 目标表(字段1,字段2,字段3) select 字段1_1,字段2_1,字段3_1 from 源表 where 条件表达式
4,有其他疑问可以问我!
展开全部
insert into table select ...
这样的不加union all的insert into能理解吧?
就是通过一个select查询的结果集完成一次性的多行插入。
而UNION ALL也是一样,是SELECT语句的一部分,两个UNION ALL把三行数据集合起来,一次插入到表WORKERS中。
这个是SQLSERVER语法,SELECT 定值(不需要表)表示一行固定值。
您直接看insert into workers后边的部分,看看结果,结果是什么,这次插入的数据就是什么。
如果没有union all,那么每次只能插入一行。
这样的不加union all的insert into能理解吧?
就是通过一个select查询的结果集完成一次性的多行插入。
而UNION ALL也是一样,是SELECT语句的一部分,两个UNION ALL把三行数据集合起来,一次插入到表WORKERS中。
这个是SQLSERVER语法,SELECT 定值(不需要表)表示一行固定值。
您直接看insert into workers后边的部分,看看结果,结果是什么,这次插入的数据就是什么。
如果没有union all,那么每次只能插入一行。
追问
谢谢各位~都回答的很好~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个语句分为两部分,select ... union all 和insert
其实 select ... union all... 又由三个select 语句组成,通过union all 将select的结果联合起来。
你可以单独运行:
select 'A',25,'统计',3000,1 union all
select 'B',30,'设计规划',9000,2 union all
select 'C',20,'代码员',2000,3
它会产生3行。
最后,通过insert语句,将3行一次性插入到WORKERS表中。
其实 select ... union all... 又由三个select 语句组成,通过union all 将select的结果联合起来。
你可以单独运行:
select 'A',25,'统计',3000,1 union all
select 'B',30,'设计规划',9000,2 union all
select 'C',20,'代码员',2000,3
它会产生3行。
最后,通过insert语句,将3行一次性插入到WORKERS表中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
insert into WORKERS
这是一个迁移数据的sql语句,你想呀。
insert into WORKERS
select 'A',25,'统计',3000,1
只能迁移一条数据,union all
相当于连接的意思。
这是一个迁移数据的sql语句,你想呀。
insert into WORKERS
select 'A',25,'统计',3000,1
只能迁移一条数据,union all
相当于连接的意思。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |