Lista de retorno e escalares

Existem vários métodos do objeto Query que emitem SQL imediatamente e retornam um valor contendo os resultados do banco de dados carregado.

Aqui está um breve resumo da lista de retorno e escalares -

todos()

Ele retorna uma lista. A seguir está a linha de código da função all ().

session.query(Customers).all()

O console Python exibe a seguinte expressão SQL emitida -

SELECT customers.id 
AS customers_id, customers.name 
AS customers_name, customers.address 
AS customers_address, customers.email 
AS customers_email
FROM customers

primeiro()

Ele aplica o limite de um e retorna o primeiro resultado como um escalar.

SELECT customers.id 
AS customers_id, customers.name 
AS customers_name, customers.address 
AS customers_address, customers.email 
AS customers_email
FROM customers
LIMIT ? OFFSET ?

Os parâmetros limitados para LIMIT é 1 e para OFFSET é 0.

1()

Este comando busca totalmente todas as linhas e, se não houver exatamente uma identidade de objeto ou linha composta presente no resultado, ele gerará um erro.

session.query(Customers).one()

Com várias linhas encontradas -

MultipleResultsFound: Multiple rows were found for one()

Sem linhas encontradas -

NoResultFound: No row was found for one()

O método one () é útil para sistemas que esperam lidar com “nenhum item encontrado” versus “vários itens encontrados” de forma diferente.

escalar()

Ele invoca o método one () e, em caso de sucesso, retorna a primeira coluna da linha da seguinte forma -

session.query(Customers).filter(Customers.id == 3).scalar()

Isso gera a seguinte instrução SQL -

SELECT customers.id 
AS customers_id, customers.name 
AS customers_name, customers.address 
AS customers_address, customers.email 
AS customers_email
FROM customers
WHERE customers.id = ?