`SELECT INTO` 语句在某些数据库管理系统中(如 SQL Server 和 Access)用于从一个表复制数据到一个新表。这个新表将包含与原始表相同的数据和列结构。然而,正如你所提到的,MySQL 不支持 `SELECT ... INTO` 语句,而是使用 `INSERT INTO ... SELECT` 来复制数据,同时使用 `CREATE TABLE ... SELECT` 来复制表结构和数据。
### SQL SELECT INTO 语法(对于支持的数据库)
```sql
SELECT *
INTO 新表名
FROM 旧表名
WHERE 条件;
```
- `新表名` 是你想要创建的新表的名称。
- `旧表名` 是包含数据的原始表的名称。
- `WHERE 条件` 是用来指定复制哪些数据的条件(可选)。
### 代码示例(对于支持 SELECT INTO 的数据库)
假设我们有一个名为 `employees` 的表,我们想要创建一个新的表 `new_employees` 来存储所有员工的数据。
```sql
SELECT *
INTO new_employees
FROM employees;
```
这条语句将创建一个名为 `new_employees` 的新表,并将 `employees` 表中的所有数据复制到这个新表中。
### MySQL 中的替代方案
由于 MySQL 不支持 `SELECT INTO`,我们可以使用以下两种方法:
#### 1. 使用 INSERT INTO ... SELECT 复制数据
```sql
INSERT INTO 新表名
SELECT * FROM 旧表名;
```
这条语句将数据从 `旧表名` 复制到 `新表名`,但不会复制表结构。
#### 2. 使用 CREATE TABLE ... SELECT 复制表结构及数据
```sql
CREATE TABLE 新表名 AS
SELECT * FROM 旧表名;
```
这条语句将创建一个新表,并复制 `旧表名` 的结构和数据到 `新表名`。
### 代码示例(MySQL)
假设我们有一个名为 `employees` 的表,我们想要在 MySQL 中创建一个新的表 `new_employees` 来存储所有员工的数据。
```sql
CREATE TABLE new_employees AS
SELECT * FROM employees;
```
这条语句将创建一个名为 `new_employees` 的新表,并复制 `employees` 表中的所有数据和结构到这个新表中。这样,`new_employees` 将具有与 `employees` 相同的列和数据。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。