SQL SELECT INTO 语句


通过 SQL,您可以从一个表复制信息到另一个表。

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


SQL SELECT INTO 语句

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

注意:

MySQL 数据库不支持 SELECT ... INTO 语句,但支持 INSERT INTO ... SELECT

当然你可以使用以下语句来拷贝表结构及数据:

CREATE TABLE 新表
AS
SELECT * FROM 旧表 

SQL SELECT INTO 语法

假设有一个名为 employees 的表,包含以下数据:

EmployeeIDFirstNameLastNameAgeDepartment
1JohnDoe30Sales
2JaneSmith25HR
3SamBrown28IT

要创建一个名为 employees_backup 的新表,并将 employees 表中的所有数据插入到新表中,可以使用以下 SQL 语句:

SELECT *
INTO employees_backup
FROM employees;

执行此语句后,新的 employees_backup 表将仅包含年龄大于 25 岁的员工的数据。

SELECT EmployeeID, FirstName, LastName, Age, Department
INTO employees_backup
FROM employees
WHERE Age > 25;

执行此语句后,新的 employees_backup 表将仅包含年龄大于 25 岁的员工的数据。

使用注意事项

表结构

  • SELECT INTO 会创建一个新表,并且新表的结构将基于选择的列和数据类型。
  • 如果新表已经存在,SELECT INTO 语句将失败。在这种情况下,可以使用 INSERT INTO ... SELECT 语句。

数据库支持

  • SELECT INTO 语句在 SQL Server 中非常常用,但在 MySQL 和 PostgreSQL 中通常使用 CREATE TABLE ... AS SELECT 语句。

在其他数据库中的替代方案

MySQL 和 PostgreSQL

在 MySQL 和 PostgreSQL 中,可以使用 CREATE TABLE ... AS SELECT 来实现类似的功能:

CREATE TABLE employees_backup AS
SELECT EmployeeID, FirstName, LastName, Age, Department
FROM employees
WHERE Age > 25;