SELECT INTO

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 【11月更文挑战第08天】

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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
SQL 数据库
SQL 查询优化指南:SELECT、SELECT DISTINCT、WHERE 和 ORDER BY
SQL的SELECT语句用于从数据库中选择数据。SELECT语句的基本语法如下:
108 1
|
索引
不推荐SELECT * FROM table原因
根据非索引查询 :B+树的叶子节点放数据表行数据,叶子节点存放主键,如果想获得行数据信息,则需要再跑到主键索引去拿数据,这叫回表,速度慢。但不管是主键还是非主键索引,他们的叶子结点数据都是有序的。比如在主键索引中,这些数据是根据主键id的大小,从小到大,进行排序的。**1.**根据索引查询 :B+树的父节点放索引数据,速度快,叶子(父)节点会存放完整的行数据西信息。
374 0
|
2天前
|
SQL 数据库
INTO SELECT
【11月更文挑战第10天】
8 3
|
10天前
|
SQL
SELECT DISTINCT
【11月更文挑战第02天】
17 1
|
23天前
|
前端开发 容器
select
【10月更文挑战第20天】
31 5
|
SQL 数据库
INSERT DESC UPDATE SELECT
INSERT DESC UPDATE SELECT
99 0
|
数据库 索引
SELECT
SELECT
65 0
|
存储 前端开发 JavaScript
select2 使用详解
select2 使用详解
|
SQL Java 数据库连接
SELECT操作
SELECT操作
74 0
|
存储 SQL 缓存
到底为什么不建议使用SELECT *?
“不要使用SELECT *”几乎已经成为了MySQL使用的一条金科玉律,就连《阿里Java开发手册》也明确表示不得使用`*`作为查询的字段列表,本文从4个方面给出理由。
到底为什么不建议使用SELECT *?