SQL Artisan组件之Query对象概要 Query对象是SQL Artisan组件的主要成员之一,它是SELECT语句基于.NET对象化的实现;最终的目的是通过Query对象来解决全部SELECT查询语句的编写。 Query对象现在所支持的功能 1)支持单表和多表查询;包括INNER JOIN,LEFT JOIN,RIGHT JOIN等操作。 2)支持字段的运算符;包括:+,-,*,/ 3)支持字段的比较运算符;包括:=,<>,>,>=,<,<=,in,ont in,like, BETWEEN, not BETWEEN等。 4)支持聚合函数:Sum,Count,Avg,Max,Min 5)支持数据库的扩展函数:Year,Month,Len,Left,SubString等。 6)支持数据分组。 7)支持数据排序。 Query的处理对象 HFSoft.Data.Expressions.Table 表描述对象,它用于提供Query需要查询的表信息。 可以通过以下方式来定义一个表对象: private HFSoft.Data.Expressions.Table TBL= new HFSoft.Data.Expressions.Table("Orders");
表对象提供关联方法用于生关联的表对象: .INNER JOIN建立两个表的关联表 1)创建Employees,Orders的关联表对象: IQuery query = session.CreateQuery(Employees.TBL.INNER(Orders.TBL,Employees.F_EmployeeID))
2)创建Employees,Orders,Customers的关联表对象: IQuery query = session.CreateQuery(Employees.TBL.INNER(Orders.TBL,Employees.F_EmployeeID)&Orders.TBL.INNER(Customers.TBL,Orders.F_CustomerID));
.LEFT JOIN建立两个表的左连接关联表 IQuery query = session.CreateQuery(Employees.TBL.LEFT(Orders.TBL,Employees.F_EmployeeID));
.RIGHT JOIN建立两个表的右连接关联表 IQuery query = session.CreateQuery(Employees.TBL.RIGHT(Orders.TBL,Employees.F_EmployeeID));
HFSoft.Data.Expressions.TableField 字段描述对象,它用于提供Query需要查询的字段信息 可以通过以下方式定义一个字段对象: private HFSoft.Data.Expressions.TableField F_mOrderID = new HFSoft.Data.Expressions.TableField("OrderID");
字段对象提供丰富的运算功能,包括比较运算和数据库函数等。 运算功能:+,-,*,/ 比较功能:==,!=,>,>=,<,<=,Like,In,NotIn, Match, Between, NotBetween 聚合函数:Max,Min,Count,Sum,Avg 组合运算:&,| 数据库扩展函数: MSSQL: CAST, ABS, FLOOR, DATEADD,YEAR,MONTH,DAY等。 其它数据暂时没提供。 Query组成部分 获取或设置需要查询的表对象,可以通过表的关联方法创建关联表对象。些属性不能为null。 Selects属性 获取或设置查询的字段对象集,此属可以为null。当为null时如果查询的表是单表则表示返回表的所有字段否则回基础表的所有字段。 可以通过字段的相关组合来产生新的查询字段;如:字段+,-,*,/运算,还可以套用聚合函数和数据库函数等。 1)IQuery query = session.CreateQuery(OrderDetails.TBL); query.Selects = new TableField[]{SqlMath.Count(OrderDetails.ALL).As("CountValue"),OrderDetails.F_OrderID};
2)IQuery query = session.CreateQuery(Employees.TBL); query.Selects = new TableField[]{(Employees.F_LastName +Employees.F_LastName).As("Name"),Employees.ALL};
Expreesion属性 获取或设置条表达式,此属可以为null。当为null时查询获取表的所有记录。 条件表达式可以通过字段对象的比较运算和组合运算符产生,比较过程中字段可以调用运算符或数据库函数。 上一篇:利用视图管理器编写高效 SQL SELECT 语句 下一篇:一种简单的表中删除重复行的方法 更多相关文章
|
推荐文章
精彩文章
|