Список возврата и скаляры

Есть несколько методов объекта 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 -

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 = ?