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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring Boot2.0迁移概括

    Spring Boot2.0迁移概括首先,SpringBoot2.0需要Java8或更高版本。不再支持Java6和7了。在SpringBoot2.0中,许多配置属性被重新命名/删除,开发人员需要更新application.properties/application.yml相应的配置。为了帮助你解决这一问题,SpringBoot发布了一个新spring-boot-properties-migr…

    2022年5月27日
    66
  • java迭代创建文件,并写入内容

    java迭代创建文件,并写入内容java迭代创建文件,并写入内容

    2022年4月24日
    49
  • MacBook 常用快捷键

    MacBook 常用快捷键MacOSX系统图形表示方法⇧=shift⌃=control⌥=option/altHome=fn+◄End=fn+►PageUp=fn+▲PageDown=fn+▼删除后一个字符(普通键盘的Delete)=fn+delete截图保存整个屏幕到桌面=shift+command+3保存整个屏幕到剪贴板=control+shift…

    2022年5月9日
    57
  • 支持向量回归模型SVR

    支持向量回归模型SVR1.SVM回归模型的损失函数度量    回顾下我们前面SVM分类模型中,我们的目标函数是让12||w||2212||w||22最小,同时让各个训练集中的点尽量远离自己类别一边的的支持向量,即yi(w∙ϕ(xi)+b)≥1yi(w∙ϕ(xi)+b)≥1。如果是加入一个松弛变量ξi≥0ξi≥0,则目标函数是12||w||22+C∑i=1mξi12||w||22+C∑i=1mξi,对应的约束条

    2022年5月13日
    36
  • SpringBoot | 第三十七章:集成Jasypt实现配置项加密

    SpringBoot | 第三十七章:集成Jasypt实现配置项加密前言近期在进行项目安全方面评审时,质量管理部门有提出需要对配置文件中的敏高文件进行加密处理,避免了信息泄露问题。想想前段时间某公司上传github时,把相应的生产数据库明文密码也一并上传了,导致了相应的数据泄露问题。也确实,大部分项目无论开发、测试还是生产环境,相关的敏高信息都是明文存储的,也是一大安全隐患呀。所以今天来说说,如何对配置文件进行加密操作。一点知识何为Jasypt…

    2022年9月25日
    3
  • 最全的vim快捷键

    最全的vim快捷键https://blog.csdn.net/flexman09/article/details/51802005 曾经使用了两年多的Vim,手册也翻过一遍。虽然现在不怎么用vim了,曾经的笔记还是贴出来,与喜欢vim的朋友分享。索1.关于Vimvim是我最喜欢的编辑器,也是linux下第二强大的编辑器。虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编…

    2022年5月5日
    55

发表回复

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

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