INSERT SELECT 语句

by admin on 2019年10月15日

简介

唯有最终检索它们并动用它们来做点专业,不然将记录放入数据库没什么利润。这正是SELECT 语句的用处,即帮忙收取数据。SELECT 差不离是 SQL
语言中最常用的言语,何况怎么使用它也最棒推崇;用它来采摘记录也许至极复杂,恐怕会涉及许多表中列之间的可比。本节介绍Select语句关于查询的最基本功效。

INSERT SELECT语句是能够把SELECT查询重返结果集插入指标数据表中。

SQL大法

数据库中的数据复制备份

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

SELECT 语句的语法如下:

演示,首先成立一个有时表,

在多数景观下,大家的须求将一部分对数据库的修改写在SQL脚本上,到服务器能够一向表露更新(跑脚本就可以)

SELECT INTO:

 

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. 在表tbl第11中学获得到Name=’***’的笔录的ID,插入到别的一张表tbl第22中学的田野先生1中,同期tbl2还应该有任何的字段
    ,用田野2,田野3象征
SELECT value1,value2,value3 INTO Table_2 FROM Table_1

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

WHERE primary_constraint 行必需满足哪些条件

 使用INSERT SELECT语法,

Table_2表存在,报错:数据库中已存在名叫’Table_2′ 的对象。

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)

Table_2表不设有,自动成立表Table_2,成功导入数据

insert into AddressList(姓名,地址,邮箱)
select name,address,email 
from Students

HAVING secondary_constraint 行必需知足的第二原则

 

INSERT INTO SELECT:

 语法快记:该语句和健康的插入语句语法很相像,为了越来越好的无时或忘语法,就能够通晓此插入语句把values替换来了查询语句。

ORDER BY sorting_columns 怎么着对结果排序

 

形式:

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

LIMIT count 结果限定

INSERT INTO Table_2 (v1,v2,v3) SELECT v4,v5,v6 FROM Table_1

  1.查询语句部分个中列的个数、顺序、数据类型必得与INSERT语句的钦命列要保持一致,列名能够差异。

只顾:全体应用的机要词必需正确地以地点的顺序给出。例如,一个HAVING子句必需跟在GROUP
BY子句之后和O宝马X3DEENCORE BY子句在此以前。

Table_2表官样文章,报错:对象名 ‘Table_2’
无效。

  2.INSERT语句插入数据的表必需是事先创设好的。

除此之外词“SELECT”和注明希望物色什么的 column_list
部卓殊,语法中的每样东西皆以可选的。有的数据库还索要 FROM 子句。MySQL
有所不一样,它同意对表明式求值而不援用任何表。

Table_2表存在:成功导入数据

 

平凡查询

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
INTO语句方式会试行插入数据和创造表二种命令,那样会延长到叁个新主题材料:怎么着给新表中钦点贰个标志列?

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

因为标记列的数量是自增的,由此我们得以在SELECT
INTO语句中插足标记列的始建,语法如下:

+——–+——-+———+——+————+————+

select IDENTITY(int,1,1) as Aid ,Students.name,Students.address,Students.email
into AddressList
from Students

您能够对照前多少个例证来表达。

查询特定列

借使您不想要见到你的表的全套行,就取名你感兴趣的列,用逗号分开。举例,假如你想要知道你的动物几时出生的,精选name和birth列:

mysql> SELECT name, birth FROM pet where owner=”Gwen”;

其结果为:

+———-+————+

| name     | birth      |

+———-+————+

| Claws    | 1994-03-17 |

| Chirpy   | 1998-09-11 |

| Whistler | 1997-12-09 |

+———-+————+

举办表明式总结

眼下的非常多查询通过从表中检索值已经发生了出口结果。MySQL
还允许作为八个公式的结果来测算输出列的值。表达式能够大约也能够复杂。下边包车型大巴查询求多个简便表明式的值常量)以致二个涉及多少个算术运算符和五个函数调用的较复杂的表达式的值。比如,总结Browser生活的运气:

mysql> SELECT death-birth FROM pet WHERE name=”Bowser”;

其结果是:

+————-+

| death-birth |

+————-+

|       49898 |

+————-+

出于MySQL允许对表达式求值而不援引任何表。所以也得以这么使用:

mysql>select (2+3*4.5)/2.5;

其结果为:

+—————+

| (2+3*4.5)/2.5 |

+—————+

|         6.200 |

+—————+

SELECT 语句的用处,即帮忙抽取数据。SELECT 大致是…

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图