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() )


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM