某某茶叶有限公司欢迎您!
金沙棋牌在线 > 必赢棋牌官网 > INSERT SELECT 语句

INSERT SELECT 语句

时间:2019-12-29 06:39

简介

除非最终检索它们并利用它们来做点事情,否则将记录放入数据库没什么好处。这就是 SELECT 语句的用途,即帮助取出数据。SELECT 大概是 SQL 语言中最常用的语句,而且怎样使用它也最为讲究;用它来选择记录可能相当复杂,可能会涉及许多表中列之间的比较。本节介绍Select语句关于查询的最基本功能。

INSERT SELECT语句是可以把SELECT查询返回结果集插入目标数据表中。

SQL大法

将查询语句查询的结果集作为数据插入到数据表中。

SELECT 语句的语法如下:

演示,首先创建一个临时表,

在很多情景下,我们的需要将一些对数据库的修改写在SQL脚本上,到服务器可以直接发布更新(跑脚本即可)

 

SELECT selection_list 选择哪些列

IF OBJECT_ID ('#t') IS NOT NULL
    DROP TABLE #t
    
CREATE TABLE #t 
(
    [MemberId] [int] NOT NULL,
    [Name] [nvarchar](100) NOT NULL,
    [Job] [bit] NULL
)

这几天就遇到这么一个需求,需要在数据库中加一些字段,但是由于测试的数据库与线上的数据库数据上还是有一些差异的,不可以直接将数据写死,需要动态去获取到对应的数据库数值再插入到新的记录中。

一、通过INSERT SELECT语句形式向表中添加数据

FROM table_list 从何处选择行

  

  1. 在表tbl1中获取到Name='***'的记录的ID,插入到另外一张表tbl2中的field1中,同时tbl2还有其他的字段 ,用field2,field3表示

例如,创建一张新表AddressList来存储班级学生的通讯录信息,然后这些信息恰好存在学生表中,则可以从学生表中提取相关的数据插入建好的AddressList表中。

WHERE primary_constraint 行必须满足什么条件

 使用INSERT SELECT语法,

T-SQL语句如下:

GROUP BY grouping_columns 怎样对结果分组

INSERT INTO #t SELECT [MemberId],[Name],[Job] FROM [dbo].[Member] WHERE [Job] = 1
--或者
INSERT INTO #t([MemberId],[Name],[Job]) SELECT [MemberId],[Name],[Job] FROM [dbo].[Member] WHERE [Job] = 1

INSERT INTO tbl1(`field1`, `field2`, `field3`) 
VALUES ((SELECT `ID` as `field1` FROM tbl2 WHERE `Name` = '***'), value2, value3)
insert into AddressList(姓名,地址,邮箱)
select name,address,email 
from Students

HAVING secondary_constraint 行必须满足的第二条件

 

 语法快记:该语句和常规的插入语句语法很相似,为了更好的记住语法,即可理解此插入语句把values替换成了查询语句。

ORDER BY sorting_columns 怎样对结果排序

 

使用该语句插入数据的注意事项:

LIMIT count 结果限定

  1.查询语句部分其中列的个数、顺序、数据类型必须与INSERT语句的指定列要保持一致,列名可以不相同。

注意:所有使用的关键词必须精确地以上面的顺序给出。例如,一个HAVING子句必须跟在GROUP BY子句之后和ORDER BY子句之前。

  2.INSERT语句插入数据的表必须是预先创建好的。

除了词“SELECT”和说明希望检索什么的 column_list 部分外,语法中的每样东西都是可选的。有的数据库还需要 FROM 子句。MySQL 有所不同,它允许对表达式求值而不引用任何表。

 

普通查询

INSERT SELECT语句形式中的查询部分不仅可以是单表,可以支持不同形式的查询语句,只要保证查询结果集的列和要插入数据的列是匹配的即可。

SELECT最简单的形式是从一张表中检索每样东西:

1.联接查询作为数据

mysql> SELECT * FROM pet;

insert into AddressList (name,address)
select a.UserName,b.address from SYSTEM_Users a
inner join BASE_Customer b on a.code=b.code

其结果为:

 

+----------+--------+---------+------+------------+------------+

2.UNION合并多个结果集作为数据

| name     | owner  | species | sex  | birth      | death      |