SQL SELECT INTO 语句

SQL SELECT INTO 语句

SELECT INTO 语句用于创建新表,并用现有表中的数据填充它。

SELECT INTO 语句对于创建备份或创建用于分析的临时表非常有用。

注意:新表将使用与源表中定义的相同列名和数据类型创建。但是,主键、索引或 NOT NULL 约束不会自动转移。

SELECT INTO 语法

复制所有列到新表中:

SELECT *
INTO newtable [IN externaldb]
FROM oldtable
WHERE condition;

只复制一些列到新表中:

SELECT column1, column2, column3, ...
INTO newtable [IN externaldb]
FROM oldtable
WHERE condition;

SQL SELECT INTO 实例

下面的 SQL 语句创建了 Customers 的一个备份副本:

SELECT * INTO CustomersBackup2017
FROM Customers;

下面的 SQL 语句使用了 IN 子句将表复制到另一个数据库的新表中:

SELECT * INTO CustomersBackup2017 IN 'Backup.mdb'
FROM Customers;

下面的 SQL 语句只复制几个列到新表中:

SELECT CustomerName, ContactName INTO CustomersBackup2017
FROM Customers;

下面的 SQL 语句只复制德国的客户到新表中:

SELECT * INTO CustomersGermany
FROM Customers
WHERE Country = 'Germany';

下面的 SQL 语句从多于一个表中复制数据到新表中:

SELECT Customers.CustomerName, Orders.OrderID
INTO CustomersOrderBackup2017
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

提示:SELECT INTO 还可以用于使用一个表的模式创建一个新的空表。只需要添加一个导致查询没有返回数据的 WHERE 子句即可:

SELECT * INTO newtable
FROM oldtable
WHERE 1 = 0;