Java中的SQL CREATE和SELECT处理模拟

时间:2017-03-31 12:16:59

标签: java mysql sql data-structures sql-processor

我想用Java模拟简单的SQL语句(Create& Select)处理。

例如,考虑以下两个关系

CREATE TABLE X( a, b, c);
CREATE TABLE Y( c, d, e);

问题1: 现在我可以使用哪些数据结构来存储关系名称X和Y及其属性。

还要考虑select语句:

SELECT a,d FROM X,Y WHERE X.c = Y.c ;

问题2: 如何确认 a属于X或Y d属于X还是Y ? 如何在SQL查询处理引擎中处理此处理。

如果Selection仅依赖于单个关系,我可以找到许多查询评估计划,它们将SELECT语句推送到JOIN操作下面。为此,我需要知道如何确认该属性属于哪个关系?

提前致谢。

1 个答案:

答案 0 :(得分:1)

  

问题1:现在我可以使用哪些数据结构来存储关系名称X和Y及其属性。

使用您喜欢的任何结构,在Java中,您最有可能使用与X和Y对应的类,其中的字段对应于a,b,c表示X和c,d,e表示Y.

  

SELECT a,d FROM X,Y WHERE X.c = Y.c;

     

问题2:如何确认a属于X还是Y而d属于X还是Y?如何在SQL查询处理引擎中处理此处理。

由于a仅存在于X中且d仅存在于Y中,因此数据库知道其含义。如果它们也存在于另一个表中,您需要指定其中的哪一个(例如SELECT x.a, d FROM X x, Y y ...)。