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

select into from 和 insert into select 的用法和区别selectintofrom和insertintoselect都是用来复制表,两者的主要区别为:selectintofrom要求目标表不存在,因为在插入时会自动创建。insertintoselectfrom要求目标表存在 下面分别介绍两者语法 一、INSERTINTOSELECT语句 1、语句形式为:InsertintoTable2(field1…

大家好,又见面了,我是你们的朋友全栈君。

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
二、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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159611.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea的mybatiscodehelppro离线激活码-激活码分享2022.02.06

    (idea的mybatiscodehelppro离线激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年4月1日
    929
  • phpstorm2021.12.13 激活【2021最新】「建议收藏」

    (phpstorm2021.12.13 激活)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    41
  • Idea激活码最新教程2022.3.2版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2022.3.2版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2022 3 2 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2022 3 2 成功激活

    2025年5月26日
    5
  • mac的内核_Mac编程

    mac的内核_Mac编程MAC内核编程指南-综述等

    2022年10月8日
    3
  • SQL怎么实现模糊查询[通俗易懂]

    SQL怎么实现模糊查询[通俗易懂]模糊查询的语句一般如下:SELECT字段FROM表WHERE某字段LIKE条件;关于条件部分,有以下匹配模式:1.%:表示零个或多个字符。可以匹配任意类型和任意长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。select*fromuserwhereusernamelike’%张%’;将会把user这张表里面,列名username中含有张的记录全部查询出来。如果需要找到user这张表里面,字段username中既有张,又有李的记录,可以使用and

    2022年5月7日
    124
  • 五笔字根口诀_五笔拆字口诀和方法详解

    五笔字根口诀_五笔拆字口诀和方法详解一、五笔字根表二、五笔字根口诀12G王旁青头戋(兼)五一(“兼”与“戋”同音)H目具上止卜虎皮(“具上”指具字的上部)F土士二干十寸雨(可别忘了革字底)J日早两竖与虫依D大犬三羊古石厂(羊底龙头套上套下)K口与川,字根稀S木丁西L田甲方框四车力(“方框”即“口”)A工戈草头右框七(“右框”即“匚”)M山由贝,…

    2022年8月10日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号