如何从较大的表生成较小的表(Oracle)

如何从较大的表生成较小的表(Oracle),oracle,Oracle,假设您正在使用一个名为LotOFData的数据库,该数据库包含大量数据。我想从这个大型数据库中获取一些方面,使其成为自己的小型数据库,称为LessData,然后将该数据库用于我的下一个查询。但我不知道怎么做 所以我的LessData就是我从这个查询中得到的所有数据 select * from LotOFData where shapes = shape1 or shapes = shape2 这将是我想使用LessData表进行的新查询 select * from(

假设您正在使用一个名为LotOFData的数据库,该数据库包含大量数据。我想从这个大型数据库中获取一些方面,使其成为自己的小型数据库,称为LessData,然后将该数据库用于我的下一个查询。但我不知道怎么做

所以我的LessData就是我从这个查询中得到的所有数据

    select *  from LotOFData where shapes = shape1 or shapes = shape2
这将是我想使用LessData表进行的新查询

    select * from(
    (select part from LessData where shapes = shape1) 
    natural join (select part from LessData where shapes = shape2) )

LotOFData和LessData在SQL中称为表。在Oracle中,您可以使用create table as select语句创建较小的表,如下所示:

create table LessData as select * from LotOFData 
where shapes = 'shape1' or shapes = 'shape2';
我假设shapes列是一个字符串,在这些形状周围加上引号

要查询LessData,只需使用以下命令:

select * from LessData;
该选择将获取shape1和shape2的数据


Bobby

这个问题是关于数据库还是表的?我根据描述数据库的问题投票决定结束,这个问题太宽泛了。如果您只是想获取数据库中单个表的子集,请编辑您的问题;自然连接不会返回任何行-形状是一个公共列,因此它将使用该列进行连接,并且任何行的形状都不能同时等于“shape1”和“shape2”?不管怎样,你确定你真的想要一个新的永久桌子,它会过时吗?您是否真的试图简化您的查询-因此可能真的需要一个CTE,或者如果您经常需要一个视图,甚至是一个物化视图;或者可能是一张临时桌子?