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
相同的列和数据。