SELECT INTO 语句在某些数据库管理系统中(如 SQL Server 和 Access)用于从一个表复制数据到一个新表。这个新表将包含与原始表相同的数据和列结构。然而,正如你所提到的,MySQL 不支持 SELECT ... INTO 语句,而是使用 INSERT INTO ... SELECT 来复制数据,同时使用 CREATE TABLE ... SELECT 来复制表结构和数据。
SQL SELECT INTO 语法(对于支持的数据库)
SELECT *
INTO 新表名
FROM 旧表名
WHERE 条件;
新表名是你想要创建的新表的名称。旧表名是包含数据的原始表的名称。WHERE 条件是用来指定复制哪些数据的条件(可选)。
代码示例(对于支持 SELECT INTO 的数据库)
假设我们有一个名为 employees 的表,我们想要创建一个新的表 new_employees 来存储所有员工的数据。
SELECT *
INTO new_employees
FROM employees;
这条语句将创建一个名为 new_employees 的新表,并将 employees 表中的所有数据复制到这个新表中。
MySQL 中的替代方案
由于 MySQL 不支持 SELECT INTO,我们可以使用以下两种方法:
1. 使用 INSERT INTO ... SELECT 复制数据
INSERT INTO 新表名
SELECT * FROM 旧表名;
这条语句将数据从 旧表名 复制到 新表名,但不会复制表结构。
2. 使用 CREATE TABLE ... SELECT 复制表结构及数据
CREATE TABLE 新表名 AS
SELECT * FROM 旧表名;
这条语句将创建一个新表,并复制 旧表名 的结构和数据到 新表名。
代码示例(MySQL)
假设我们有一个名为 employees 的表,我们想要在 MySQL 中创建一个新的表 new_employees 来存储所有员工的数据。
CREATE TABLE new_employees AS
SELECT * FROM employees;
这条语句将创建一个名为 new_employees 的新表,并复制 employees 表中的所有数据和结构到这个新表中。这样,new_employees 将具有与 employees 相同的列和数据。