MySQL Create Table as SELECT语句

MySQL Create Table as SELECT语句

MySQL是一种开源关系型数据库管理系统,其功能强大的创建表作为查询语句(CREATE TABLE AS SELECT)是一个非常有用的功能。CREATE TABLE AS SELECT语句是将查询结果存储到新创建的表中的最简单的方法。在本文中,我们将深入探讨此功能的细节,并为您提供一些示例,以便您可以更好地了解此功能。

阅读更多:MySQL 教程

什么是MySQL Create Table as SELECT

MySQL Create Table as SELECT是一种用于将一个或多个表的查询结果存储在一个新的表中的MySQL语句。它可以将查询结果转存到新的表中,这个新的表可以具有您选择的名称,并且可以每次都是全新的,以避免任何可能对原始表的更改。

MySQL Create Table as SELECT语法

下面是MySQL Create Table as SELECT语句的标准语法:

CREATE TABLE new_table_name AS
SELECT *
FROM original_table_name;
SQL

以下是示例:

CREATE TABLE `person_new` AS
SELECT *
FROM `person`;
SQL

MySQL Create Table as SELECT示例

现在让我们通过一些示例来更好地了解MySQL Create Table as SELECT是如何工作的。

示例1:将查询结果存储在新表中

假设我们有一个名为student的表

现在,让我们使用CREATE TABLE AS SELECT语句将查询结果存储在新表students_topper中,该表仅包含最高分的学生。

CREATE TABLE `students_topper` AS
SELECT *
FROM `student`
WHERE `marks` = (SELECT MAX(`marks`) FROM `student`)
SQL

运行此查询后,您将会得到以下新的表students_topper

此查询将结果存储到了一个新表中,该表仅包含最高分的学生。

示例2: 带有计算列

假设我们有一个名为order_details的表,其中包含以下列:OrderID、ProductID、UnitPrice、Quantity、Discount。

现在,让我们使用MySQL Create Table as SELECT语句创建一个名为order_sales_by_product的新表,该表包含每个产品的总销售额和总销售数量,并带有一个计算列average_price,该计算列计算每个产品的平均价格。

CREATE TABLE `order_sales_by_product` AS
SELECT
`ProductID`,
SUM(`UnitPrice` * `Quantity` * (1 - `Discount`)) AS `total_sales`,
SUM(`Quantity`) AS `total_quantity`,
AVG(`UnitPrice`) AS `average_price`
FROM `order_details`
GROUP BY `ProductID`
ORDER BY `total_sales` DESC
SQL

您将获得一个名为order_sales_by_product的新表,该表包含每个产品的总销售额和总销售数量,并带有一个计算列,该计算列计算每个产品的平均价格。

示例3: 从多个表中获取数据

假设我们有两个表salesorder_details,其中sales表示每个销售人员的销售额,order_details表示每个月的所有订单详细信息。

现在,让我们使用MySQL Create Table as SELECT语句,创建一个名为sales_january的新表,该表仅包含一月份的销售数据。

CREATE TABLE `sales_january` AS
SELECT
`s.*`,
`o.*`
FROM `sales` AS `s`
INNER JOIN `order_details` AS `o`
ON `s`.`OrderID` = `o`.`OrderID`
WHERE `o`.`OrderDate` BETWEEN '1996-01-01' AND '1996-01-31'
SQL

运行此查询后,您将获得一个名为sales_january的新表,其中包含一月份的销售数据。

总结

MySQL Create Table as SELECT语句是将查询结果存储在新表中的绝佳方法。它可以通过创建一个新表来保护您的原始数据,并允许您灵活地对结果进行操作。无论您是进行数据分析还是仅仅需要对数据进行归档,MySQL Create Table as SELECT都是一个强大的工具。希望本文中的示例对您有所帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册