java - Java中的SQL CREATE和SELECT处理模拟

标签 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 查询处理引擎内部如何进行此处理。

如果选择仅依赖于单个关系,我可以找到许多将 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/

相关文章:

java - java中super不能作为构造函数第一行时的解决方法

mysql 查询 - 条件语句?

sql - 按日期划分的在职员工总数

mysql - 选择查询将日期时间列转换为 UTC

mysql - MYSQL如何建立索引?

sql - 如何为单个文件运行 Sequelize 向下迁移

Java - 如何将 PDF 打印到特定打印机?

java - 如何在 JPanel 中的组件之间切换?

java - Tableview java显示数据库下一行

mysql - 使用外键和 alter 语句创建 MySQL 关系