使用SQLAlchemy构建复杂查询

2023-04-05 00:00:00 sqlalchemy 查询 构建

SQLAlchemy 是一个 Python 的关系数据库工具,提供了一个 ORM(对象关系映射)框架。ORM 将数据库映射到面向对象的类,从而使得我们能够更加方便地对数据库进行操作。

下面是使用 SQLAlchemy 构建复杂查询的一些示例:

范例 1:查询表中所有数据

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# 创建数据库引擎
engine = create_engine('sqlite:///example.db', echo=True)

# 创建会话
Session = sessionmaker(bind=engine)
session = Session()

# 创建基类
Base = declarative_base()

# 创建实体类
class User(Base):
    __tablename__ = 'user'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

# 查询所有用户数据
results = session.query(User).all()
for user in results:
    print(user.id, user.name, user.age)

范例 2:按条件查询数据

# 查询年龄在 20 到 30 之间的用户
results = session.query(User).filter(User.age >= 20, User.age <= 30).all()
for user in results:
    print(user.id, user.name, user.age)

范例 3:查询指定字段数据

# 查询用户的 name 和 age 字段
results = session.query(User.name, User.age).all()
for name, age in results:
    print(name, age)

范例 4:使用字符串构建查询条件

from sqlalchemy import text

# 使用字符串构建查询条件
query = text("SELECT * FROM user WHERE name = 'pidancode.com'")
result = session.execute(query)
for row in result:
    print(row)

更多示例可以参考 SQLAlchemy 的官方文档。

相关文章