【Mybits Plus】SelectBody的实现类(SelectBody 的 PlainSelect、ValuesStatement、WithItem、SetOperationList 区别?)

SelectBody 的 PlainSelect、ValuesStatement、WithItem、SetOperationList 区别?
在这里插入图片描述
在SQL查询语句中,SelectBody是一个抽象类,代表了查询的主体部分。而PlainSelect、ValuesStatement、WithItem和 SetOperationList则是继承自 SelectBody 的具体实现类。
在这里插入图片描述

1.PlainSelect:
PlainSelect表示单个简单的SELECT查询语句,它可以包含多个子句(如SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等),并且可以使用JOIN操作连接多个表。通常情况下,我们使用 PlainSelect 来构建大部分常见的查询语句。 例如,下面是一个使用 PlainSelect 构建的查询语句:

SELECT column1, column2
FROM table1
WHERE condition

2.ValuesStatement:
ValuesStatement 表示值数组或参考变量集合。它可以在 INSERT, REPLACE 或 MERGE 语句中与列名一起使用来插入或替换新数据。 例如,下面是一个使用 ValuesStatement 插入数据的示例:

INSERT INTO table1 (column1, column2)
 VALUES (value1, value2), (value3, value4)

3.WithItem:
‘WithItem’ 定义了带有别名(alias)的子查询,并将其标识为关键字 ‘WITH’ 子句中的一部分返回某些列。这些项可用作 FROM,则在通常允许 SELECT,则上面运行更复杂的 SELECT。

 WITH t1 AS (
      select * from my_table_1 where age >30
   ), t2 AS (
      select * from my_table_2 where sex = 'M'
   )
   select *
   from t1 inner join t2 on t1.id = t2.t_id;

4.SetOperationList:
SetOperationList 表示多个查询结果集之间的合并操作。它可以用于实现 UNION(并集)、INTERSECT(交集)和EXCEPT(差集)等操作。通过将多个SELECT语句组合在一起,可以生成更复杂的查询结果。 例如,下面是一个使用 SetOperationList 构建的查询语句:

SELECT col_name FROM table_A UNION SELECT col_name from table_B;

总结起来:

PlainSelect:用于表示单个简单的 SELECT 查询语句,并包含各种子句和连接操作
ValuesStatement :用于表示值数组或参考变量集合,在 INSERT, REPLACE 或 MERGE 语法中与列名一起使用以插入或替换新数据。
WithItem:定义了带有别名(alias)子查询,并将其标识为关键字 WITH 子句中返回某些列。
SetOperationList: 用于表示多个查询结果集之间的合并操作,如 UNION、INTERSECT 和 EXCEPT。
这四个类都属于 Apache JSQLParser 库中定义的类,在 Java 中可通过该库进行 SQL 解析和处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值