MySQL CREATE TABLE AS语句


MySQL CREATE TABLE AS语句用于通过复制现有表的列来创建表。
以这种方式创建表时,将使用现有表中的数据(基于SELECT语句)填充新表。

语法

MySQL中CREATE TABLE AS语句的语法为:

1
2
3
4
CREATE TABLE [ IF NOT EXISTS ] new_table [ AS ]
SELECT expressions
FROM existing_tables
[WHERE conditions];
参数 说明
IF NOT EXISTS 可选的。如果指定,则如果表已经存在,则CREATE TABLE AS语句将不会引发错误。
new_table 要创建的表的名称。
AS 可选的。是否指定AS关键字对表的创建没有影响。
expressions 要在new_table中创建的来自existing_tables中的字段。字段的定义将被转移到创建的new_table中。
existing_tables 要从中复制字段定义和相关记录的现有表(根据WHERE子句)。
WHERE conditions 要将记录复制到new_table,必须满足的条件。

可选的。将记录复制到new_table时必须满足的条件。

说明

  • existing_tables中的字段定义将被复制到new_table。
  • new_table将根据WHERE子句中条件的记录来进行填充。

MySQL CREATE TABLE AS示例

通过复制另一个表中的所有字段来创建表:

1
2
3
4
CREATE TABLE local_companies AS
SELECT *
FROM companies
WHERE state = 'Florida';

本示例将创建一个名为local_companies的新表,其中包含companies表中的所有字段。数据包含所有Florida州的公司。


通过复制多个表中的选定字段来创建表:

1
2
3
4
5
6
CREATE TABLE suppliers AS
SELECT companies.company_id AS "supplier_id",
companies.address, companies.state, categories.category_type
FROM companies, categories
WHERE companies.company_id = categories.category_id
AND companies.state = 'Florida';

本示例将基于来自company和category表的列定义来创建一个称为supplier的新表。注意,在本例中,我们给company_id字段起别名为supplier_id,因为我们希望新供应商表中的字段名为supplier_id,而不是company_id。


原文链接:https://codingdict.com/