本文最后更新于 2024-11-14,文章内容可能已经过时。

SQLAlchemy 是一个强大的 Python ORM(对象关系映射)框架,它提供了多种方法来执行数据库查询操作。以下是一些 SQLAlchemy 中常用的方法:

session.query():创建一个 Query 对象,用于执行数据库查询。例如:

query = session.query(User)

filter():为 Query 对象添加过滤条件。例如:

query = session.query(User).filter(User.age > 30)

all():获取 Query 对象的所有结果,并以列表形式返回。例如:

users = query.all()

first():获取 Query 对象的第一条记录。例如:

user = query.first()

get():根据主键值获取记录。例如:

user = session.query(User).get(1)

filter_by():根据指定列的值进行过滤。例如:

query = session.query(User).filter_by(name='Alice')

join():进行内连接查询。例如:

addresses = session.query(User).join(Address).all()

outerjoin():进行外连接查询。例如:

addresses = session.query(User).outerjoin(Address).all()

group_by():按指定列对查询结果进行分组。例如:

query = session.query(User.age, func.count('*')).group_by(User.age)

order_by():对查询结果进行排序。例如:

query = session.query(User).order_by(User.name.desc())

count():统计查询结果的数量。例如:

num_users = session.query(User).count()

delete():删除满足条件的记录。例如:

session.query(User).filter(User.age < 18).delete()

update():更新满足条件的记录。例如:

session.query(User).filter(User.name == 'Alice').update({'age': 30})

select_from():指定查询的来源表。例如:

stmt = select([User]).select_from(User)

with_lockmode():为 Query 对象添加锁模式。例如:

query = session.query(User).with_lockmode('update')

scalar():执行 FunctionElement 并返回一个标量值。例如:

result = func.some_function().scalar()

table_valued():返回一个 TableValuedAlias 表示 FunctionElement 添加了表值表达式。例如:

result = func.some_table_valued_function().table_valued()