Operações avançadas de sqlalchemy

pedido_por (classificar)

需要导包
from sqlalchemy import desc,asc

descendente

db.session.query().order_by(desc()).all()

asc ascendente

db.session.query().order_by(desc()).all()

limite (limite)

db.session.query().limit().all()

group_by (agrupamento)

db.session.query().group_by().all()

função (função agregada)

需要导包
from sqlalchemy import account,max,min,avg

número de contagem)

db.session.query(func.acount()).all()

max () ou min () (máximo ou mínimo)

db.session.query(func.max()).all()
db.session.query(func.max()).all()

média () ou soma () (média ou soma)

db.session.query(func.avg()).all()

diminuir () (virar em minúsculas)

db.session.query().filter(func.lower() == '').all()

Produtos secos

elenco () (transferência de força)

db.session.query(func.cast('',Numeric(10))).all()

substr () (corte a string, o índice do subscrito começa em 1)

db.session.query(func.substr('',start,length)).all()

Retorna o segundo item no conjunto de resultados

user = session.query(User).get(2)

Retornar itens 2-3 no conjunto de resultados

users = session.query(User)[1:3]

Condições de consulta

user = session.query(User).filter(User.id < 6).first()

Consulta apenas alguns atributos

users = session.query(User.name).order_by(desc(User.name))
for user in users:
    print user.name

Alias ​​das colunas do conjunto de resultados

users = session.query(User.name.label('user_name')).all()
for user in users:
    print user.user_name

Consulta de desduplicação (é necessário importar um método distinto)

from sqlalchemy import distinct
users = session.query(distinct(User.name).label('name')).all()

D

user_count = session.query(User.name).order_by(User.name).count()
age_avg = session.query(func.avg(User.age)).first()
age_sum = session.query(func.sum(User.age)).first()

rótulo ('') (alias)

users = session.query(func.count(User.name).label('count'), User.age).group_by(User.age)
for user in users:
    print 'age:{0}, count:{1}'.format(user.age, user.count)

existe consulta (~ existe () se não existe)

from sqlalchemy.sql import exists
session.query(User.name).filter(~exists().where(User.role_id == Role.id))
SELECT name AS users_name FROM users WHERE NOT EXISTS (SELECT * FROM roles WHERE users.role_id = roles.id)

Além de existir, qualquer também pode significar EXISTE

session.query(Role).filter(Role.users.any())

acaso

from sqlalchemy.sql.functions import random
user = session.query(User).order_by(random()).all()

Acho que você gosta

Origin blog.csdn.net/weixin_46073538/article/details/109343462
Recomendado
Clasificación