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


相关推荐

  • pycharm 编码怎么设置_pycharm编码格式

    pycharm 编码怎么设置_pycharm编码格式Python中默认的编码格式是ASCII格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。有两种解决方法。一种是在python的编程工具Pycharm中设置默认编码pycharm下载地址:http://www.jetbrains.com/pycharm/选择社区版即可,免费。设置方法如下:入口A:工具栏-File-DefaultSettings-Editor-File…

    2022年8月27日
    3
  • BM3D算法「建议收藏」

    BM3D算法「建议收藏」BM3D(Block-matchingand3Dfiltering,3维块匹配滤波)2007-TIP-Imagedenoisingbysparse3Dtransform-domaincollaborativelteringNL-means(空间域处理)非局部均值算法p像素的值的大小就应该为q1q2q3每个与p对应房间(像素)值的加权平均,这样就对P图像斑块完成了降噪的过程,类似一个基于大斑块的高斯滤波算法。BM3D把空间域和变换域的降噪方法结合起来BM3D该..

    2022年6月7日
    47
  • 如何查看linux服务器cuda_[882]如何查看windows和linux的CUDA版本

    如何查看linux服务器cuda_[882]如何查看windows和linux的CUDA版本linux查看cuda版本cuda一般安装在/usr/local/cuda/路径下,该路径下有一个version.txt文档,里面记录了cuda的版本信息cat/usr/local/cuda/version.txt如何查看windows的CUDA版本CUDA是什么?CUDA(ComputeUnifiedDeviceArchitecture),是显卡厂商NVIDIA推出的运算平台。CU…

    2022年10月21日
    0
  • python机器学习库xgboost——xgboost算法

    python机器学习库xgboost——xgboost算法全栈工程师开发手册(作者:栾鹏)python数据挖掘系列教程安装xgboost目前还不能pip在线安装,所以先在网址https://www.lfd.uci.edu/~gohlke/pythonlibs/#xgboost中下载whl文件,然后参考https://blog.csdn.net/luanpeng825485697/article/details/7781…

    2022年4月29日
    39
  • densenet121网络结构_resnet网络结构详解

    densenet121网络结构_resnet网络结构详解论文:https://arxiv.org/pdf/1608.06993.pdf参考文献:https://blog.csdn.net/u014380165/article/details/75142664https://blog.csdn.net/qq_14845119/article/details/79272082与残差网络的区别:残差网络是加上跳转链接,非线性映射关…

    2022年9月29日
    0
  • kubernetes 清除状态为 Evicted 的 pod[通俗易懂]

    kubernetes 清除状态为 Evicted 的 pod[通俗易懂]kubectlgetpods–all-namespaces|grepEvicted|awk'{print$2}’|xargskubectldeletepod

    2022年5月13日
    44

发表回复

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

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