过滤是数据提取的一个很重要的功能,以下对一些常用的过滤条件进行解释,并且这些过滤条件都是
只能通过where方法实现的:
1. equals : ==,或者.is_ 函数
2. not equals : != 或者 isnot函数
3. like & ilike [不区分大小写]:
4. 在某个集合中存在,in_函数, 或者notin_函数(不存在)
5. And 多条件组合
# 查询员工的名字中包含”四“ ,并且基本薪资大于3000的所有员工 where(Employee.name.like('%四%'), Employee.sal > 3000)) where(and_(Employee.name.like('%四%'), Employee.sal > 3000))
6. or多条件组合
where(or_(Employee.name.like('%四%'), Employee.sal > 3000))
7. 聚合函数
◦ func.count:统计行的数量。
◦ func.avg:求平均值。
◦ func.max:求最大值。
◦ func.min:求最小值。
◦ func.sum:求和。
# 查询所以员工的数量 result = session.execute(select(func.count(Employee.id)))
8. 分页查询
a. limit函数:可以限制查询的时候只查询前几条数据。 属top-N查询
b. offset:可以限制查找数据的时候过滤掉前面多少条。可指定开始查询时的偏移量。
result = session.scalars(select(Employee).offset(0).limit(2))
9. 排序: order_by函数
result = session.scalars(select(Employee).order_by(Employee.sal.desc()).offset(0).limit( 2))
10. 分组查询:group_by 和过滤函数 having
# 查询每个性别,各有多少员工 result = session.execute(select(Employee.gender, func.count(Employee.id)).group_by(Employee.gender)) for o in result: # print(type(o)) print(o)
标签:函数,查询,session,result,func,条件,Employee From: https://www.cnblogs.com/yongheng999/p/18292361