zoukankan      html  css  js  c++  java
  • Python自动化之sqlalchemy(修改和查询)

    修改

        my_user = Session.query(User).filter_by(name="alex").first()
    
    my_user.name = "Alex Li"
    
    Session.commit()
    

    获取所有数据

    session.query(Person).all()
    

    获取某一列数据,类似于django的get,如果返回数据为多个则报错

    session.query(Person).filter(Person.name=='jack').one()
    

    获取返回数据的第一行

    session.query(Person).first()
    

    过滤数据

    session.query(Person.name).filter(Person.id>1).all()
    

    limit

    session.query(Person).all()[1:3]
    

    order by

    session.query(Person).ordre_by(-Person.id)
    

    equal/like/in

    query = session.query(Person)
    query.filter(Person.id==1).all()
    query.filter(Person.id!=1).all()
    query.filter(Person.name.like('%ac%')).all()
    query.filter(Person.id.in_([1,2,3])).all()
    query.filter(~Person.id.in_([1,2,3])).all()
    query.filter(Person.name==None).all()
    

    and or

    from sqlalchemy import and_
    query.filter(and_(Person.id==1, Person.name=='jack')).all()
    query.filter(Person.id==1, Person.name=='jack').all()
    query.filter(Person.id==1).filter(Person.name=='jack').all()
    from sqlalchemy import or_
    query.filter(or_(Person.id==1, Person.id==2)).all()
    

    回滚

    my_user = Session.query(User).filter_by(id=1).first()
    my_user.name = "Jack"
     
     
    fake_user = User(name='Rain', password='12345')
    Session.add(fake_user)
     
    print(Session.query(User).filter(User.name.in_(['Jack','rain'])).all() )  #这时看session里有你刚添加和修改的数据
     
    Session.rollback() #此时你rollback一下
     
    print(Session.query(User).filter(User.name.in_(['Jack','rain'])).all() ) #再查就发现刚才添加的数据没有了。
     
    # Session
    # Session.commit()
    

    多条件查询

    objs = Session.query(User).filter(User.id>0).filter(User.id<7).all()
    

    统计和分组

    Session.query(User).filter(User.name.like("Ra%")).count()
    

    分组

    from sqlalchemy import func
    print(Session.query(func.count(User.name),User.name).group_by(User.name).all() )
  • 相关阅读:
    开源魔兽世界私服搭建
    centos7 普通用户无法使用ssh登录其他服务器
    Java时间格式大全
    C#中的线程之Abort陷阱
    C# 多线程学习系列四之ThreadPool取消、超时子线程操作以及ManualResetEvent和AutoResetEvent信号量的使用
    C# ThreadPool类(线程池)
    VS2019输出信息到调试控制台
    Stream/Bytes[]/Image对象相互转化
    Asp.NetCore 读取配置文件帮助类
    Java SpringBoot使用126邮箱发送html内容邮件,带附件
  • 原文地址:https://www.cnblogs.com/wspblog/p/5998517.html
Copyright © 2011-2022 走看看