SQLAlchemy 几种查询方式总结

几种常见sqlalchemy查询:

1    #简单查询 2    print(session.query(User).all()) 3    print(session.query(User.name, User.fullname).all()) 4    print(session.query(User, User.name).all()) 5     6    #带条件查询 7    print(session.query(User).filter_by(name='user1').all()) 8    print(session.query(User).filter(User.name == "user").all()) 9    print(session.query(User).filter(User.name.like("user%")).all()) 10     11    #多条件查询 12    print(session.query(User).filter(and_(User.name.like("user%"), User.fullname.like("first%"))).all()) 13    print(session.query(User).filter(or_(User.name.like("user%"), User.password != None)).all()) 14     15    #sql过滤 16    print(session.query(User).filter("id>:id").params(id=1).all()) 17     18    #关联查询  19    print(session.query(User, Address).filter(User.id == Address.user_id).all()) 20    print(session.query(User).join(User.addresses).all()) 21    print(session.query(User).outerjoin(User.addresses).all()) 22     23    #聚合查询 24    print(session.query(User.name, func.count('*').label("user_count")).group_by(User.name).all()) 25    print(session.query(User.name, func.sum(User.id).label("user_id_sum")).group_by(User.name).all()) 26     27    #子查询 28    stmt = session.query(Address.user_id, func.count('*').label("address_count")).group_by(Address.user_id).subquery() 29    print(session.query(User, stmt.c.address_count).outerjoin((stmt, User.id == stmt.c.user_id)).order_by(User.id).all()) 30     31    #exists 32    print(session.query(User).filter(exists().where(Address.user_id == User.id))) 33    print(session.query(User).filter(User.addresses.any()))

限制返回字段查询

1person = session.query(Person.name, Person.created_at,                      2             Person.updated_at).filter_by(name="zhongwei").order_by(             3             Person.created_at).first()

记录总数查询:

1from sqlalchemy import func 2 3# count User records, without 4# using a subquery. 5session.query(func.count(User.id)) 6 7return count of user "id" grouped 8# by "name" 9session.query(func.count(User.id)).\ 10        group_by(User.name) 11 12from sqlalchemy import distinct 13 14# count distinct "name" values 15session.query(func.count(distinct(User.name)))
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Python3:sqlalchemy对mysql数据库操作,非sql语句

Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''

SQLAlchemy和Flask

假设page\_index1,page\_size10;所有分页查询不可以再跟first(),all()等1.用offset()设置索引偏移量,limit()限制取出filter语句后面可以跟order_by语句db.session.query(User.name).filter(User.email.li

SQLAlchemy 几种查询方式总结 - HelloWorld