前言
- 使用 SQL,您可以将信息从一个表中复制到另一个表中。
- SELECT INTO 语句从一个表中复制数据,然后将数据插入到另一个新表中。
1.SQL SELECT INTO 语法
需求:我们可以把所有的列都复制到新表中:
SELECT *
INTO newtable [IN externaldb]
FROM table1;
需求:或者只复制希望的列插入到新表中:
SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1;
SQL SELECT INTO 实例
创建 Customers 的备份复件:
SELECT *
INTO CustomersBackup2013
FROM Customers;
需求 :请使用 IN 子句来复制表到另一个数据库中:
SELECT *
INTO CustomersBackup2013 IN 'Backup.mdb'
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;
2.INSERT INTO SELECT 语句
- INSERT INTO SELECT 语句从表中复制数据,并将数据插入现有的表中。
- 目标表中的任何现有行都不会受到影响。
INSERT INTO SELECT 语法
需求:将所有列从一个表中复制到另一个已经存在的表中:
INSERT INTO table2
SELECT * FROM table1;
需求:想要的列复制到另一个现有的表中:
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;
INSERT INTO SELECT 实例
需求:把 "Suppliers" 一栏复制到 "Customers" 一栏:
INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers;
需求:只将德国供应商的副本插入 "Customers" :
INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers
WHERE Country='Germany';