Учебники

Возвращение списка и скаляры

Существует несколько методов объекта Query, которые немедленно выдают SQL и возвращают значение, содержащее результаты загруженной базы данных.

Вот краткое изложение списка возврата и скаляров —

все()

Возвращает список. Ниже приведена строка кода для функции all ().

session.query(Customers).all()

Консоль Python отображает следующее выражение SQL:

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

первый()

Он применяет ограничение в единицу и возвращает первый результат в виде скаляра.

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 ?

Связанные параметры для LIMIT — 1, а для OFFSET — 0.

один()

Эта команда полностью выбирает все строки, и, если в результате нет ни одного идентификатора объекта или составной строки, возникает ошибка.

session.query(Customers).one()

С несколькими найденными рядами —

MultipleResultsFound: Multiple rows were found for one()

Строки не найдены —

NoResultFound: No row was found for one()

Метод one () полезен для систем, которые по-разному будут обрабатывать «элементы не найдены» и «несколько элементов найдены».

скаляр ()

Он вызывает метод one () и в случае успеха возвращает первый столбец строки следующим образом:

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

Это генерирует следующую инструкцию SQL —