我想用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操作下面。为此,我需要知道如何确认该属性属于哪个关系?
提前致谢。
答案 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 ...
)。