必威体育Betway必威体育官网
当前位置:首页 > IT技术

select into from 和 insert into select 的用法和区别

时间:2019-08-05 14:43:12来源:IT技术作者:seo实验室小编阅读:86次「手机版」
 

select into

select into from 和 insert into select都是用来复制表,两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建。insert into select from 要求目标表存在。

下面分别介绍两者语法

一、INSERT INTO SELECT语句

1、语句形式为:

Insert into Table2(field1,field2,…) select value1,value2,… from Table1

2、注意地方:

(1)要求目标表Table2必须存在,并且字段field,field2…也必须存在

(2)注意Table2的主键约束,如果Table2有主键而且不为空,则 field1, field2…中必须包括主键

(3)注意语法,不要加values,和插入一条数据sql混了,不要写成:

Insert into Table2(field1,field2,…) values (select value1,value2,… from Table1)

(4)由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量

3、完整实例:

–1.创建测试表

create TABLE Table1
(
     a varchar(10),
     b varchar(10),
     c varchar(10),
     constRaiNT [PK_Table1] PRIMARY KEY clusterED
     (
         a ASC
     )
) ON [PRIMARY]

create TABLE Table2
(
     a varchar(10),
     c varchar(10),
     d int,
     constraint [PK_Table2] PRIMARY KEY CLUSTERED
     (
         a ASC
     )
) ON [PRIMARY]
GO

–2.创建测试数据

Insert into Table1 values(‘赵’,’asds’,’90’)

Insert into Table1 values(‘钱’,’asds’,’100’)

Insert into Table1 values(‘孙’,’asds’,’80’)

Insert into Table1 values(‘李’,’asds’,null)

GO

select * from Table2

–3.INSERT INTO SELECT语句复制表数据

Insert into Table2(a, c, d) select a,c,5 from Table1

GO

–4.显示更新后的结果

select * from Table2

GO

–5.删除测试表

drop TABLE Table1

drop TABLE Table2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

二、SELECT INTO FROM语句

语句形式为:SELECT vale1, value2 into Table2 from Table1

要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中 。

–1.创建测试表

create TABLE Table1

(

a varchar(10),

b varchar(10),

c varchar(10),

CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED

(

a ASC

)

) ON [PRIMARY]

GO

–2.创建测试数据

Insert into Table1 values(‘赵’,’asds’,’90’)

Insert into Table1 values(‘钱’,’asds’,’100’)

Insert into Table1 values(‘孙’,’asds’,’80’)

Insert into Table1 values(‘李’,’asds’,null)

GO

–3.SELECT INTO FROM语句创建表Table2并复制数据

select a,c INTO Table2 from Table1

GO

–4.显示更新后的结果

select * from Table2

GO

–5.删除测试表

drop TABLE Table1

drop TABLE Table2

相关阅读

验证集与测试集的区别

在对机器学习算法进行学习和实践的时候,我们经常会遇到“验证集”和“测试集”,通常的机器学习书籍都会告诉我们,验证集和测试集不相

淘宝与京东的区别与联系

京东商城和淘宝网两个都是购物网站,有相似的地方,也有本质的区别。但是一般的顾客买东西都会到淘宝上去,对淘宝的熟悉度要高些。这两

淘宝新店和老店区别是什么?怎样区分淘宝新店和老店?

淘宝新店和老店区别。淘宝店铺的日益增多,使得买家眼花缭乱,区分不seo实验室宝新店和老店。那我们怎样可以看出淘宝新店和老店区别

GTX1660Ti和1660区别对比 GTX1660和1660Ti差距大吗

英伟达今年上半年先后发布了GTX1660Ti和GTX1660两款中端显卡,虽然没有加入RTX光线追踪技术支持,但都用上了全新图灵架构,主要用于取

日语平假名和片假名的区别

取自汉字楷书偏旁而来的是 片假名 。。从汉字草书演变而来的是 平假名 。。一般片假名的单词 都是外来语 。。

分享到:

栏目导航

推荐阅读

热门阅读