insert语法

insert语法

Insert可以使一个表新增一个或多个记录:



INSERT INTO:新增一个记录。

INSERT INTO…SELECT:新增多个记录。


一、INSERT INTO

新增一个记录的INSERT INTO语法如下:

INSERT INTO 表 [(字段1[,字段2[, ...]])]
VALUES (值1[,值2[, ...])

新增的记录,将依照指定字段排列的顺序插入对应的值,譬如值1将被插入至字段1,值2将被插入至字段2,依此类推。

若未指定 (字段1[,字段2[, ...]]) ,将依照表所定义的字段排列的顺序插入对应的值,在VALUES 子句必须包含表中的每一字段值。

值间须使用逗点分隔,文字字段须使用单用引号 ('值') 括起来。

 

二、Insert Into...Select

若要新增多个记录,可以使用INSERT INTO…SELECT,语法如下:

INSERT INTO 表 [IN 外部资料库] [(字段1[,字段2[, ...]])]
SELECT [表.]字段1[, 字段2[, ...]
FROM 表

如果表包含一个主索引,须确定新增到主索引字段的值是唯一的且不可为Null值。

原表的字段为自动编号类型时,如果您要将新增记录重新编号,就不要在查询之中包含自动编号字段。若要保持原字段中的值,则将自动编号加在查询之中。

INSERT INTO将所新增的记录加入原有的表之中。若要建立一个新的表,可以使用 SELECT... INTO 的语句。

------------------------------

Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。

      1.INSERT INTO SELECT语句

       语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1

      要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:

INSERT INTO SELECT语句复制表数据
   --1.创建测试表
    createTABLE Table1
     (
         a
varchar(10),
         b
varchar(10),
         c
varchar(10),
        
CONSTRAINT[PK_Table1]PRIMARYKEYCLUSTERED
         (
             a
ASC
         )
     )
ON[PRIMARY]

    
createTABLE Table2
     (
         a
varchar(10),
         c
varchar(10),
         d
int,
        
CONSTRAINT[PK_Table2]PRIMARYKEYCLUSTERED
         (
             a
ASC
         )
     )
ON[PRIMARY]
    
GO
    
--2.创建测试数据
    Insertinto Table1 values('','asds','90')
    
Insertinto Table1 values('','asds','100')
    
Insertinto Table1 values('','asds','80')
    
Insertinto Table1 values('','asds',null)
    
GO
    
select*from Table2

    
--3.INSERT INTO SELECT语句复制表数据
    Insertinto Table2(a, c, d) select a,c,5from Table1
    
GO

    
--4.显示更新后的结果
    select*from Table2
    
GO
    
--5.删除测试表
    dropTABLE Table1
    
dropTABLE Table2


      2.SELECT INTO FROM语句

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

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

SELECT INTO FROM创建表并复制表数据
   --1.创建测试表
    createTABLE Table1
     (
         a
varchar(10),
         b
varchar(10),
         c
varchar(10),
        
CONSTRAINT[PK_Table1]PRIMARYKEYCLUSTERED
         (
             a
ASC
         )
     )
ON[PRIMARY]
    
GO

    
--2.创建测试数据
    Insertinto Table1 values('','asds','90')
    
Insertinto Table1 values('','asds','100')
    
Insertinto Table1 values('','asds','80')
    
Insertinto Table1 values('','asds',null)
    
GO

    
--3.SELECT INTO FROM语句创建表Table2并复制数据
    select a,c INTO Table2 from Table1
    
GO

    
--4.显示更新后的结果
    select*from Table2
    
GO
    
--5.删除测试表
    dropTABLE Table1
    
dropTABLE Table2
--------------------------------------------
select into 和 insert into select 两种表复制语句之间的差别

select * into destTbl from srcTbl

insert into destTbl(fld1, fld2) select fld1, 5 from srcTbl

以上两句都是将 srcTbl 的数据插入到 destTbl,但两句又有区别的。

第一句(select into from)要求目标表(destTbl)不存在,因为在插入时会自动创建。

第二句(insert into select from)要求目标表(destTbl)存在,由于目标表已经存在,所以我们除了插入源表(srcTbl)的字段外,还可以插入常量,如例中的:5。

使用insert into select from批量增加数据

文章分类:数据库
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。

      1.INSERT INTO SELECT语句

      语句形式为:
Java代码 复制代码
  1. Insert into Table2(field1,field2,...) select value1,value2,... from Table1  
Insert into Table2(field1,field2,...) select value1,value2,... from Table1

      要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:
INSERT INTO SELECT语句复制表数据
   --1.创建测试表
  
Java代码 复制代码
  1. create TABLE Table1   
  2.    (   
  3.        a varchar(10),   
  4.        b varchar(10),   
  5.        c varchar(10),   
  6.        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED   
  7.        (   
  8.            a ASC   
  9.        )   
  10.    ) ON [PRIMARY]   
  11.   
  12.    create TABLE Table2   
  13.    (   
  14.        a varchar(10),   
  15.        c varchar(10),   
  16.        d int,   
  17.        CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED   
  18.        (   
  19.            a ASC   
  20.        )   
  21.    ) ON [PRIMARY]   
  22.    GO  
 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.创建测试数据
  
Java代码 复制代码
  1. Insert into Table1 values('赵','asds','90')   
  2.    Insert into Table1 values('钱','asds','100')   
  3.    Insert into Table1 values('孙','asds','80')   
  4.    Insert into Table1 values('李','asds',null)   
  5.    GO   
  6.    select * from Table2  
 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语句复制表数据
  
Java代码 复制代码
  1. Insert into Table2(a, c, d) select a,c,5 from Table1   
  2.    GO  
 Insert into Table2(a, c, d) select a,c,5 from Table1
    GO

    --4.显示更新后的结果
  
Java代码 复制代码
  1. select * from Table2   
  2.    GO  
 select * from Table2
    GO
    --5.删除测试表
  
Java代码 复制代码
  1. drop TABLE Table1   
  2.    drop TABLE Table2  
 drop TABLE Table1
    drop TABLE Table2
      2.SELECT INTO FROM语句

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

      要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。示例如下:
SELECT INTO FROM创建表并复制表数据
   --1.创建测试表
  
Java代码 复制代码
  1. create TABLE Table1   
  2.    (   
  3.        a varchar(10),   
  4.        b varchar(10),   
  5.        c varchar(10),   
  6.        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED   
  7.        (   
  8.            a ASC   
  9.        )   
  10.    ) ON [PRIMARY]   
  11.    GO  
 create TABLE Table1
    (
        a varchar(10),
        b varchar(10),
        c varchar(10),
        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
        (
            a ASC
        )
    ) ON [PRIMARY]
    GO

    --2.创建测试数据
  
Java代码 复制代码
  1. Insert into Table1 values('赵','asds','90')   
  2.    Insert into Table1 values('钱','asds','100')   
  3.    Insert into Table1 values('孙','asds','80')   
  4.    Insert into Table1 values('李','asds',null)   
  5.    GO  
 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并复制数据
   
Java代码 复制代码
  1. select a,c INTO Table2 from Table1   
  2.     GO  
select a,c INTO Table2 from Table1
    GO

    --4.显示更新后的结果
  
Java代码 复制代码
  1. select * from Table2   
  2.    GO  
 select * from Table2
    GO
    --5.删除测试表
   
Java代码 复制代码
  1. drop TABLE Table1   
  2.     drop TABLE Table2  
drop TABLE Table1
    drop TABLE Table2
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值