SQLAlchemy操作MariaDB笔记之三

3 篇文章 0 订阅
2 篇文章 1 订阅

查询语法练习

query方法返回的是一个可迭代输出的对象,可以索引和切片。参数可以为表对象,表的字段对象。

>>> for instance in session.query(User).order_by(User.id): 
...     print instance.name, instance.fullname
>>> for name, fullname in session.query(User.name, User.fullname): 
...     print name, fullname

给表对象起别名,同时可以指定字段的别名

>>> from sqlalchemy.orm import aliased
>>> user_alias = aliased(User, name='user_alias')

SQL>>> for row in session.query(user_alias, user_alias.name).all(): 
...    print row.user_alias

fillter_by()方法相当于where子句;order_by
方法相当于orderby子句;

子句中的符号:

query.filter(User.name == ‘ed’)

query.filter(User.name != ‘ed’)

LIKE

query.filter(User.name.like(‘%ed%’))

IN

query.filter(User.name.in_([‘ed’, ‘wendy’, ‘jack’]))

从句

query.filter(User.name.in_(
session.query(User.name).filter(User.name.like(‘%ed%’))
))

NOT IN

query.filter(~User.name.in_([‘ed’, ‘wendy’, ‘jack’]))

IS NULL

query.filter(User.name == None)

AND

from sqlalchemy import and_

query.filter(and_(User.name == ‘ed’, User.fullname == ‘Ed Jones’))

query.filter(User.name == ‘ed’, User.fullname == ‘Ed Jones’)

OR

query.filter(User.name == ‘ed’).filter(User.fullname == ‘Ed Jones’)

from sqlalchemy import or_
query.filter(or_(User.name == ‘ed’, User.name == ‘wendy’))

MATCH

query.filter(User.name.match(‘wendy’))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值