MySQL CREATE TABLE AS语句
时间:2019-02-04 12:52:27 来源:igfitidea点击:
MySQL CREATE TABLE AS语句用于通过复制现有表的列来创建表。
以这种方式创建表时,将使用现有表中的数据(基于SELECT语句)填充新表。
语法
MySQL中CREATE TABLE AS语句的语法为:
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示例
通过复制另一个表中的所有字段来创建表:
CREATE TABLE local_companies AS SELECT * FROM companies WHERE state = 'Florida';
本示例将创建一个名为local_companies的新表,其中包含companies表中的所有字段。数据包含所有Florida州的公司。
通过复制多个表中的选定字段来创建表:
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。