SELECT查询结果集INSERT到数据表

来源:http://www.sh-fengwen.com 作者:气血双补 人气:108 发布时间:2019-10-24
摘要:简介 除非最终检索它们并利用它们来做点事情,否则将记录放入数据库没什么好处。这就是SELECT 语句的用途,即帮助取出数据。SELECT 大概是 SQL语言中最常用的语句,而且怎样使用它也

简介

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

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

SELECT 语句的语法如下:

 

SELECT selection_list 选择哪些列

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

FROM table_list 从何处选择行

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

WHERE primary_constraint 行必须满足什么条件

T-SQL语句如下:

GROUP BY grouping_columns 怎样对结果分组

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      |

insert into AddressList(name,address)
select '张三','洛杉矶' 
union
select '李四','旧金山' 
union
select '王五','华盛顿' 

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

 

| Fluffy   | Harold | cat     | f    | 1993-02-04 | NULL       |

3.数据来自其他数据库(跨数据库插入) 

| Claws    | Gwen   | cat     | m    | 1994-03-17 | NULL       |

insert into StudentInfo(name)
select lxr FROM AgroDB.dbo.BASE_Customer

| Buffy    | Harold | dog     | f    | 1989-05-13 | NULL       |

 

| Chirpy   | Gwen   | bird    | f    | 1998-09-11 | NULL       |

 

| Fang     | Benny  | dog     | m    | 1990-08-27 | NULL       |

二、通过SELECT INTO语句形式将查询结果集的数据添加到新数据表

| Bowser   | Diane  | dog     | m    | 1990-08-31 | 1995-07-29 |

SELECT INTO语句形式的插入方式和INSERT INTO 语句形式插入方式有相同处和不同处。

| Whistler | Gwen   | bird    | NULL | 1997-12-09 | NULL       |

相同:它们插入的数据都是来自SELECT查询结果集

| Slim     | Benny  | snake   | m    | 1996-04-29 | NULL       |

不同:INSERT INTO 语句形式插入的数据表必须是预先创建,SELECT INTO语句形式的插入的数据表是在执行该语句时新创建的。

| Puffball | Diane  | hamster | f    | 1999-03-30 | NULL       |

T-SQL语句如下:

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

select  name,address,email
into AddressList
from  Students

查询特定行:

 

你能从你的表中只选择特定的行。例如,如果你想要验证你对Bowser的出生日期所做的改变,像这样精选Bowser的记录:

语法快记:整体结构就是查询语句的结构,即在from关键字之上指派了INTO关键字加新数据表名。

mysql> SELECT * FROM pet WHERE name = "Bowser";

语句执行逻辑:

其结果为:

  1.创建新数据表,新表的数据结构来自于查询语句指定的列。

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

  2.将查询结果集的信息插入到新表中,只会插入SELECT 中指派的列,列可以指定部分也可以全部。

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

本文由美高梅游戏平台网站发布于气血双补,转载请注明出处:SELECT查询结果集INSERT到数据表

关键词:

上一篇:python之数据库操作,python数据库

下一篇:没有了

最火资讯