sqlalchemy单条记录查询函数对比

sqlalchemy有哪些单条记录查询函数

  • first()
  • one()
  • scalar()

first函数

语法

session.filter(数据模型类名.字段名=="xxx").first()

first函数特点

  • 结果可以使用多条数据或者一条数据,但是结果不能为空,否则会报错。

one函数

语法

session.filter(数据模型类名.字段名=="xxx").one()

one函数特点

  • 结果必须并且只能有一条数据,否则会报错。

scalar函数

语法

session.filter(数据模型类名.字段名=="xxx").scalar()

scalar函数特点

  • 结果可以有一条数据或者没有数据;不能有多条数据,否则会报错。
  • scalar调用one方法,并在成功时返回行的第一列(所有其结果为一个基础类型的值)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQLAlchemy 和 Tortoise ORM 在查询语法上有一些不同。 SQLAlchemy查询语法基于 SQL 语句,可以使用 SQL 的各种特性和语法,例如 SELECT、FROM、WHERE、ORDER BY、GROUP BY 等。同时,SQLAlchemy 还提供了 ORM API 和 Query API,可以方便地进行对象关系映射和查询操作。 Tortoise ORM 的查询语法则更类似于 Django ORM,它使用类似 Django ORM 的语法,例如 filter()、exclude()、order_by() 等。同时,Tortoise ORM 还支持异步 I/O 操作,可以使用 async/await 语法进行异步查询操作。 以下是两个 ORM 的查询语法对比: **SQLAlchemy 查询语法示例:** ```python from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.orm import sessionmaker engine = create_engine('sqlite:///example.db') Session = sessionmaker(bind=engine) session = Session() class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String) age = Column(Integer) # 使用 SQL 语句进行查询 result = session.query(User).filter(User.age >= 18).order_by(User.name.desc()).all() # 使用 ORM API 进行查询 result = session.query(User).filter_by(name='John').first() # 使用 Query API 进行查询 result = session.query(User).filter(User.name.like('%John%')).all() ``` **Tortoise ORM 查询语法示例:** ```python from tortoise import fields from tortoise.models import Model class User(Model): id = fields.IntField(pk=True) name = fields.CharField(max_length=255) age = fields.IntField() # 使用 filter()、exclude()、order_by() 等方法进行查询 result = await User.filter(age__gte=18).order_by('-name').all() # 使用异步 I/O 进行查询 result = await User.filter(name='John').first() # 使用原生 SQL 进行查询 result = await User.raw('SELECT * FROM users WHERE name LIKE ?', ['%John%']) ``` 总的来说,SQLAlchemy 更加通用,支持多种查询语言,同时还提供了 ORM API 和 Query API;而 Tortoise ORM 则更类似 Django ORM,使用类似 Django ORM 的语法进行查询,并支持异步 I/O 操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hzw0510

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值