📜  SQL |创建表扩展

📅  最后修改于: 2022-05-13 01:55:41.980000             🧑  作者: Mango

SQL |创建表扩展

SQL 为CREATE TABLE子句提供了一个扩展,该子句创建一个与数据库中某些现有表具有相同架构的新表。

  • 它用于将复杂查询的结果临时存储在新表中。
  • 创建的新表与引用表具有相同的架构。
  • 默认情况下,新表具有与引用表相同的列名和数据类型。

句法:

CREATE TABLE newTable LIKE pets

例子:

CREATE TABLE newTable as
            (SELECT * 
             FROM pets
             WHERE pets.BREED = 'German Shepherd')

查询

宠物表:

IDNameBreedGender
11441TommyGerman ShepherdMale
11442MaxBeagleMale
11443CharliePugMale
11444DaisyPoodleFemale
11445ZoeLabradorFemale
11446TobyBulldogMale


查询一:

CREATE TABLE newTable LIKE pets;
SELECT * 
FROM newTable 
where newTable.GENDER = 'Female';

输出:

IDNameBreedGender
11444DaisyPoodleFemale
11445ZoeLabradorFemale

解释:创建的 newTable 是 pets 表的副本。因此,从 newTable 中选择女性宠物只返回两行宠物是女性。
查询 2:

CREATE TABLE newTable as
            (SELECT * 
             FROM pets
             WHERE pets.BREED = 'German Shepherd');
SELECT * from newTable;

输出:

IDNameBreedGender
11441TommyGerman ShepherdMale

说明:首先评估内部查询并将结果存储在新的临时关系中。在此之后,评估创建 newTable 的外部查询,并将内部查询的输出添加到 newTable。

参考资料: Silberschatz 的数据库系统概念第 6 版