您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

ad_sql__select__into

SQL SELECT INTO 语句

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

注意:

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

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

CREATE TABLE 新表

AS

SELECT * FROM 旧表

SQL SELECT INTO 语法

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

EmployeeID FirstName LastName Age Department
1 John Doe 30 Sales
2 Jane Smith 25 HR
3 Sam Brown 28 IT

要创建一个名为 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;
    

    来源:https://www.runoob.com/sql/sql-select-into.html