千家信息网

SQLAlchemy的查询语法有哪些

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,这期内容当中小编将会给大家带来有关 SQLAlchemy的查询语法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。#简单查询print(session.quer
千家信息网最后更新 2025年02月07日SQLAlchemy的查询语法有哪些

这期内容当中小编将会给大家带来有关 SQLAlchemy的查询语法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

#简单查询

print(session.query(User).all())

print(session.query(User.name, User.fullname).all())

print(session.query(User, User.name).all())

#带条件查询

print(session.query(User).filter_by(name='user1').all())

print(session.query(User).filter(User.name == "user").all())

print(session.query(User).filter(User.name.like("user%")).all())

#多条件查询

print(session.query(User).filter(and_(User.name.like("user%"), User.fullname.like("first%"))).all())

print(session.query(User).filter(or_(User.name.like("user%"), User.password != None)).all())

#sql过滤

print(session.query(User).filter("id>:id").params(id=1).all())

#关联查询

print(session.query(User, Address).filter(User.id == Address.user_id).all())

print(session.query(User).join(User.addresses).all())

print(session.query(User).outerjoin(User.addresses).all())

#聚合查询

print(session.query(User.name, func.count('*').label("user_count")).group_by(User.name).all())

print(session.query(User.name, func.sum(User.id).label("user_id_sum")).group_by(User.name).all())

#子查询

stmt = session.query(Address.user_id, func.count('*').label("address_count")).group_by(Address.user_id).subquery()

print(session.query(User, stmt.c.address_count).outerjoin((stmt, User.id == stmt.c.user_id)).order_by(User.id).all())

#exists

print(session.query(User).filter(exists().where(Address.user_id == User.id)))

print(session.query(User).filter(User.addresses.any()))

以下为映射类:

class User(Base):

__tablename__ = "users"

id = Column("id", Integer, primary_key=True)

name = Column("name", String)

fullname = Column("fullname", String)

password = Column("password", String)

addresses = relation("Address", order_by="Address.id", backref="user")

def __init__(self, id=None, name=None, fullname=None, password=None, addresses=[]):

self.id = id

self.name = name

self.fullname = fullname

self.password = password

self.addresses = addresses

def __repr__(self):

return "".format(name=self.name, fullname=self.fullname, password=self.password, addresses=self.addresses)

class Address(Base):

__tablename__ = "address"

id = Column(Integer, primary_key=True)

email_address = Column(String, nullable=False)

user_id = Column(Integer, ForeignKey("users.id"))

#user = relation("User", backref="addresses", order_by="Address.id")

def __init__(self, email_address=None):

self.email_address = email_address

def __repr__(self):

return "

".format(email_address=self.email_address, user=self.user.name)

上述就是小编为大家分享的 SQLAlchemy的查询语法有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

查询 语法 内容 条件 分析 专业 中小 内容丰富 就是 文章 更多 知识 篇文章 行业 角度 资讯 资讯频道 频道 关联 有关 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器安全防火墙费用 不是关系数据库的产品 宽带接入服务器基本功能为 网络安全病毒的特点包括 网络安全的总体立法思想 服务器http通道异常 计网机网络技术专业就业方向 软件开发工资激励制度 加大金融网络安全保障 怎样管理打印服务器 好的软件开发多少钱 软件开发产品设计步骤 守望先锋第四赛季服务器在哪里 sftp服务器软件 苹果服务器停止响应 云南网络安全绘画 湖北省网络安全总队地址 数据库管理阶段的主要特点 软件开发类公司资质证书 区块链技术是中心化的数据库吗 宽带接入服务器基本功能为 宁波软件开发哪家可靠 网络安全保护法是为了保护谁 网络安全线上课程培训 山东智慧养老软件开发电话 马云网络技术总监 北京拼乐网络技术有限公司 南京柒贰肆网络技术服务有限公司 专业技术 网络安全 pdo连接数据库查询
0