我想用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 查询处理引擎内部如何进行此处理。
如果选择仅依赖于单个关系,我可以找到许多将 SELECT 语句推到 JOIN 操作下方的查询评估计划。为此我需要知道如何确认属性属于哪个关系?
最佳答案
Ques 1: Now what data structures can I use to store the relation name X and Y along with their attributes .
使用您喜欢的任何结构,在 Java 中您最有可能使用对应于 X 和 Y 的类,并且这些类具有对应于 X 的 a、b、c 和 Y 的 c、d、e 的字段。
SELECT a,d FROM X,Y WHERE X.c = Y.c ;
Ques 2: How to confirm whether a belongs to X or Y and d belongs to X or Y ? How does this processing is taken care inside SQL query processing engine.
由于 a
仅存在于 X 中,而 d
仅存在于 Y 中,因此数据库知道其含义。如果它们也存在于另一个表中,您需要指定您指的是其中哪一个(例如SELECT x.a, d FROM X x, Y y ...
)。
关于java - Java中的SQL CREATE和SELECT处理模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43140473/