`

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
分享到:
| sql
评论

相关推荐

    PHP insert语法详解

    SQL插入记录的语法是: insert into 表名 (字段名1,字段名2, …) values (“字段1的值”,”字段2的值”, …) 先前那句程序就是根据这个语法而来,需要注意的是,values括号中的值我都加上了引号,这是因为所...

    SQL语句语法.doc

    13.2.4. INSERT语法 13.2.5. LOAD DATA INFILE语法 13.2.6. REPLACE语法 13.2.7. SELECT语法 13.2.8. Subquery语法 13.2.9. TRUNCATE语法 13.2.10. UPDATE语法 13.3. MySQL实用工具语句 13.3.1. DESCRIBE语法...

    MySQL_5[1].1_zh.chm中文版的mayql说明书

    Mysql 中文版 方便的查询mysql命令~~~ 13.1. 数据定义语句 ...13.2.4. INSERT语法 13.2.5. LOAD DATA INFILE语法 13.2.6. REPLACE语法 13.2.7. SELECT语法 13.2.8. Subquery语法 13.2.9. TRUNCATE语法

    dynamic-insert,dynamic-update 我有话要说

    NULL 博文链接:https://dreamzhong.iteye.com/blog/1207377

    zorm-master.zip

    Go轻量ORM,零依赖,支持达梦(dm),金仓(kingbase),神通(shentong),南通(gbase),TDengine,mysql,postgresql,oracle,mssql,...支持clickhouse,更新,删除语句使用SQL92标准语法.clickhouse-go官方驱动不支持批量insert语法,

    insert-sql-generator:从 javascript 对象创建通用 sql 插入查询

    var insertQuery = require('insert-sql-generator') var object = { a: 1, b: 'foo', c: true } var result = insertQuery('myTable', object) // prints INSERT INTO myTable (a,b,c) VALUES (?,?,?) console....

    mysql官方中文参考手册

    13.2.4. INSERT语法 13.2.5. LOAD DATA INFILE语法 13.2.6. REPLACE语法 13.2.7. SELECT语法 13.2.8. Subquery语法 13.2.9. TRUNCATE语法 13.2.10. UPDATE语法 13.3. MySQL实用工具语句 13.3.1. DESCRIBE语法(获取...

    MYSQL中文手册

    13.2.4. INSERT语法 13.2.5. LOAD DATA INFILE语法 13.2.6. REPLACE语法 13.2.7. SELECT语法 13.2.8. Subquery语法 13.2.9. TRUNCATE语法 13.2.10. UPDATE语法 13.3. MySQL实用工具语句 13.3.1. DESCRIBE...

    MySQL 5.1参考手册中文版

    13.2.4. INSERT语法 13.2.5. LOAD DATA INFILE语法 13.2.6. REPLACE语法 13.2.7. SELECT语法 13.2.8. Subquery语法 13.2.9. TRUNCATE语法 13.2.10. UPDATE语法 13.3. MySQL实用工具语句 13.3.1. DESCRIBE语法...

    MySQL 5.1参考手册

    13.2.4. INSERT语法 13.2.5. LOAD DATA INFILE语法 13.2.6. REPLACE语法 13.2.7. SELECT语法 13.2.8. Subquery语法 13.2.9. TRUNCATE语法 13.2.10. UPDATE语法 13.3. MySQL实用工具语句 13.3.1. DESCRIBE语法(获取...

    MySQL 5.1中文手冊

    13.2.4. INSERT语法 13.2.5. LOAD DATA INFILE语法 13.2.6. REPLACE语法 13.2.7. SELECT语法 13.2.8. Subquery语法 13.2.9. TRUNCATE语法 13.2.10. UPDATE语法 13.3. MySQL实用工具语句 13.3.1. DESCRIBE语法(获取...

    MySQL 5.1参考手册 (中文版)

    13.2.4. INSERT语法 13.2.5. LOAD DATA INFILE语法 13.2.6. REPLACE语法 13.2.7. SELECT语法 13.2.8. Subquery语法 13.2.9. TRUNCATE语法 13.2.10. UPDATE语法 13.3. MySQL实用工具语句 13.3.1. DESCRIBE语法(获取...

    MySQL 5.1官方简体中文参考手册

    7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. DELETE语句的速度 7.2.19. 其它优化技巧 7.3. 锁定事宜 7.3.1. 锁定方法 7.3.2. 表锁定事宜 7.4. 优化数据库结构 7.4.1. 设计选择 7.4.2. 使你的数据尽...

    MySQL5.1参考手册官方简体中文版

    13.2.4. INSERT语法 13.2.5. LOAD DATA INFILE语法 13.2.6. REPLACE语法 13.2.7. SELECT语法 13.2.8. Subquery语法 13.2.9. TRUNCATE语法 13.2.10. UPDATE语法 13.3. MySQL实用工具语句 13.3.1. DESCRIBE语法(获取...

    mysql5.1中文手册

    INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. DELETE语句的速度 7.2.19. 其它优化技巧 7.3. 锁定事宜 7.3.1. 锁定方法 7.3.2. 表锁定事宜 7.4. 优化数据库结构 7.4.1. 设计选择 ...

    基于Oracle数据库的几种常见SQL优化策略.pdf

    MERGE命令是Oracle9i及以后版本新增的命令,其字面上的意思就是合并、兼并,用来合并UPDATE和INSERT语法。通过 MERGE 命令,根据一张表或子查询的连接条件对数据进行合并、更新和插入操作,可以提高数据库的处理性能...

    达梦数据库常用sql语句语法

    达梦8数据库操作语法

    ORACLE和SQL Server的语法区别

    1. 验证所有 SELECT、INSERT、UPDATE 和 DELETE 语句的语法是有效的。进行任何必要的修改。 2. 把所有外部联接改为 SQL-92 标准外部联接语法。 3. 用相应 SQL Server 函数替代 Oracle 函数。 4. 检查所有的比较...

Global site tag (gtag.js) - Google Analytics