【SQLAlChemy】Query函数可传入的参数有哪些?

Query 函数的使用

参数种类

一般可以传递的参数有如下三种:

  1. 模型名。指定查找这个模型的全部属性(对应于数据库查询中的全表查询)。
  2. 模型中的属性。可以用来指定只查询某个模型的几个属性值。
  3. 使用聚合函数。
    • func.count():统计行的数量。
    • func.avg():求平均值。
    • func.max():求最大值。
    • func.min():求最小值。
    • func.sum():求和。

测试使用

数据表数据

参数为模型名

# 参数为 模型名 -- 全表查询
users = session.query(User).all()
for user in users:
    print(user)

结果输出:

<User(name=ypb, age=18)>
<User(name=yxc, age=22)>

参数为模型属性

# 参数为 模型名中的属性 -- 返回对应的数据
users_name = session.query(User.name).all()
for user_name in users_name:
    print(user_name)

结果输出:

('ypb',)
('yxc',)

参数为聚合函数

# 参数为 mysql 聚合函数
# 查询用户的数量
users_sum = session.query(func.count(User.id)).first()
print(users_sum)
'''
输出结果为:(2,)
'''
# 查询所有用户年龄的平均值
users_age_avg = session.query(func.avg(User.age)).first()
print(users_age_avg)
'''
输出结果为:(Decimal('20.0000'),)
'''
# 查询所有用户中最大的年龄
user_max_age_name = session.query(func.max(User.age)).first()
print(user_max_age_name)
'''
输出结果为:(22,)
'''
# 查询所有用户中年龄最大的人的姓名
user_max_age = session.query(func.max(User.age)).scalar()
print(user_max_age)
user_max_age_name = session.query(User.name).filter(User.age == user_max_age).first()
print(user_max_age_name[0])
'''
输出结果为:
22
yxc
'''
# 查询出年龄低于平均年龄的用户名
user_avg_age = session.query(func.max(User.age)).scalar()
user_age_less_than_avg_age_name = session.query(User.name).filter(User.age < user_avg_age).scalar()
print(user_age_less_than_avg_age_name)
'''
输出结果为:ypb
'''

总结

在查询时,主要查询的结果是个集合还是单个数据,这一点非常重要。

相关推荐

  1. C语言printf( ) 函数哪些参数

    2024-06-11 07:50:01       11 阅读
  2. Windows.h中函数哪些

    2024-06-11 07:50:01       45 阅读
  3. Spring事务传播机制哪些

    2024-06-11 07:50:01       15 阅读
  4. MyBatis_传入参数问题

    2024-06-11 07:50:01       35 阅读
  5. js中哪些函数

    2024-06-11 07:50:01       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-11 07:50:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-11 07:50:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-11 07:50:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-11 07:50:01       18 阅读

热门阅读

  1. Ubuntu20.04配置qwen0.5B记录

    2024-06-11 07:50:01       14 阅读
  2. MySQL物理备份

    2024-06-11 07:50:01       13 阅读
  3. Error: spawn xdg-open ENOENT

    2024-06-11 07:50:01       16 阅读
  4. go可扩展有哪些方式

    2024-06-11 07:50:01       11 阅读
  5. R语言:使用 tidyr 进行数据整理

    2024-06-11 07:50:01       13 阅读
  6. C#——Math 数学函数详情

    2024-06-11 07:50:01       11 阅读
  7. 【Spring Boot】Spring Boot 的世界之旅1

    2024-06-11 07:50:01       7 阅读
  8. Toast.makeText() 使用方法

    2024-06-11 07:50:01       12 阅读