SQL基础知识普及(十七)——SELECT INTO和INSERT INTO SELECT 语句

 

1.SELECT INTO

SQL SELECT INTO 语句

使用 SQL,您可以将信息从一个表中复制到另一个表中。

SELECT INTO 语句从一个表中复制数据,然后将数据插入到另一个新表中。

SQL SELECT INTO 语句

SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。

SQL SELECT INTO 语法

我们可以把所有的列都复制到新表中:

SELECT *

INTO newtable [IN externaldb]

FROM table1;

或者只复制希望的列插入到新表中:

SELECT column_name(s)

INTO newtable [IN externaldb]

FROM table1;

提示:将使用SELECT语句中定义的列名和类型创建新表。您可以使用AS子句来应用一个新名称。

SQL SELECT INTO 实例

创建 Customers 的备份复件:

SELECT *

INTO CustomersBackup2013

FROM Customers;

请使用 IN 子句来复制表到另一个数据库中:

SELECT *

INTO CustomersBackup2013 IN 'Backup.mdb'

FROM Customers;

只复制一些列插入到新表中:

SELECT CustomerName, ContactName

INTO CustomersBackup2013

FROM Customers;

只复制德国的客户插入到新表中:

SELECT *

INTO CustomersBackup2013

FROM Customers

WHERE Country='Germany';

复制多个表中的数据插入到新表中:

SELECT Customers.CustomerName, Orders.OrderID

INTO CustomersOrderBackup2013

FROM Customers

LEFT JOIN Orders

ON Customers.CustomerID=Orders.CustomerID;

提示:SELECT INTO 语句可以用于在另一种模式下创建一个新的空表。只需添加WHERE子句,使查询返回时没有数据:

SELECT *

INTO newtable

FROM table1

WHERE 1=0;

2.INSERT INTO SELECT

SQL INSERT INTO SELECT 语句

使用SQL,您可以将信息从一个表中复制到另一个表中。

INSERT INTO SELECT 从表中复制数据,并将数据插入现有的表中。

SQL INSERT INTO SELECT 语句

INSERT INTO SELECT 语句从表中复制数据,并将数据插入现有的表中。目标表中的任何现有行都不会受到影响。

SQL INSERT INTO SELECT 语法

我们可以将所有列从一个表中复制到另一个已经存在的表中:

INSERT INTO table2

SELECT * FROM table1;

或者我们可以把想要的列复制到另一个现有的表中:

INSERT INTO table2

(column_name(s))

SELECT column_name(s)

FROM table1;

演示数据库

以下是"Customers"表中的数据:

SQL基础知识普及(十七)——SELECT INTO和INSERT INTO SELECT 语句

选自 "Suppliers" 表的数据:

SQL基础知识普及(十七)——SELECT INTO和INSERT INTO SELECT 语句

SQL INSERT INTO SELECT 实例

把 "Suppliers" 一栏复制到 "Customers" 一栏:

实例

INSERT INTO Customers (姓名, 省份)
SELECT 供应商名称, 省份 FROM Suppliers;

只将上海供应商的副本插入 "Customers" :

实例

INSERT INTO Customers (姓名, 省份)
SELECT 供应商名称, 省份 FROM Suppliers
WHERE 省份='上海市'; 


上一篇:超实用的JavaScript技巧及最佳实践(下)


下一篇:SQL进阶知识(一)——Aliases 别名