在 SQLAlchemy 中,Query
对象提供了一系列丰富的方法来执行查询。以下是一些常用的 Query
方法及其区别:
filter()
: 用于添加过滤条件,接收一个或多个条件。order_by()
: 用于添加排序条件。limit()
: 用于限制结果集的大小。offset()
: 用于从结果集中跳过指定数量的记录。all()
: 返回满足条件的所有记录。first()
: 返回满足条件的第一个记录。one()
: 返回满足条件的第一个记录。如果查询结果为空,将引发NoResultFound
异常。scalar()
: 返回满足条件的第一个记录的第一个字段值。如果查询结果为空,将引发NoResultFound
异常。count()
: 返回满足条件的记录的数量。exists()
: 检查是否存在满足条件的记录。none_found()
: 检查是否存在满足条件的记录。如果查询结果为空,返回True
,否则返回False
。from_statement()
: 允许使用字符串形式的 SQL 语句执行查询。join()
: 用于在两个或多个表之间建立连接。outerjoin()
: 用于在两个或多个表之间建立外部连接。select_from()
: 允许指定查询应该从哪个表或视图开始。with_for_update()
: 用于指定查询结果集应该被数据库锁定,以便其他事务不能修改。with_lockmode()
: 用于指定查询结果集应该被数据库锁定,以便其他事务不能修改。subquery()
: 用于将子查询作为表达式添加到查询中。correlate()
: 用于指定查询应该与哪个表或视图进行相关联。distinct()
: 用于返回查询结果的唯一的记录。values()
: 用于返回查询结果的第一个记录的指定字段值。set_for_update()
: 用于指定查询结果集应该被数据库锁定,以便其他事务不能修改。options()
: 用于为查询添加特定的选项。with_options()
: 用于为查询添加特定的选项。