欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL Server之SELECT INTO 和 INSERT INTO SELECT案例详解

程序员文章站 2022-06-17 19:14:35
做数据库开发的过程中难免会遇到有表数据备份的,而select into……和insert into select…… 这两种语句就是用来进行表数据复制,下面简单的介绍下:1、insert into s...

做数据库开发的过程中难免会遇到有表数据备份的,而select into……和insert into select…… 这两种语句就是用来进行表数据复制,下面简单的介绍下:

1、insert into select

语句格式:insert into table2(column1,column2……) select value1,value2,value3,value4 from table1 或 insert into table2 select * from table1

说明:这种方式的表复制必须要求table2是事先创建好的

例:

--1.创建表
create table table1
(
    a varchar(10),
    b varchar(10),
    c varchar(10)
) ;

create table table2
(
    a varchar(10),
    c varchar(10),
    d varchar(10)
);
commit;
--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);
commit;
--3.复制table1数据到table2中
insert into table2(a, c, d) select a,b,c from table1;
commit;
--或,此种方式必须要求table2和table1的列数相等,而且类型兼容
insert into table2 select * from table1;
commit;

以上这些sql在oracle和ms sqlserver中的语法是一样的,可以通用.

2、select into……

这种方式的语句可以在table2不存在的时候进行表数据复制,编译器会根据table1的表结构自动创建table2,table2和table1的结构基本上是一致的,但是如果已经存在table2,则编译器会报错.

这种方式的语句在oracle中和ms sqlserver中是有点差别的,,如下:

语句格式:

oracle:create table2 as select column1,column2……from table1 或 create table2 as select * from table1

ms sqlserver:select column1,column2…… into table2 from table1 或 select * into table2 from table1

例:

--oracle
--1.创建表
create table table1
(
    a varchar(10),
    b varchar(10),
    c varchar(10)
) ;

commit;
--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);
commit;
--3.复制table1数据到table2中
create table table2 as select a,b,c from table1;
commit;
--或(这两种方式的sql只能应用一次)
create table table2 as select * from table1;
commit;
--删除表
drop table table1;
drop table table2;
commit;
--ms sqlserver
--1.创建表
create table table1
(
    a varchar(10),
    b varchar(10),
    c varchar(10)
) ;

commit;
--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);
commit;
--3.复制table1数据到table2中
select a,b,c into table2 from table1;
commit;
--或(这两种方式的sql只能应用一次)
select * into table2 from table1;
commit;
--删除表
drop table table1;
drop table table2;
commit;

到此这篇关于sql server之select into 和 insert into select案例详解的文章就介绍到这了,更多相关sql server之select into 和 insert into select内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关标签: sqlserver select