Rückgabeliste und Skalare

Es gibt eine Reihe von Methoden für Abfrageobjekte, die sofort SQL ausgeben und einen Wert zurückgeben, der geladene Datenbankergebnisse enthält.

Hier ist eine kurze Übersicht über die zurückgegebenen Listen und Skalare:

alle()

Es wird eine Liste zurückgegeben. Unten ist die Codezeile für alle () Funktionen angegeben.

session.query(Customers).all()

Die Python-Konsole zeigt den folgenden ausgegebenen SQL-Ausdruck an:

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

zuerst()

Es wird ein Limit von eins angewendet und das erste Ergebnis als Skalar zurückgegeben.

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 ?

Die gebundenen Parameter für LIMIT sind 1 und für OFFSET ist 0.

einer()

Dieser Befehl ruft alle Zeilen vollständig ab. Wenn im Ergebnis nicht genau eine Objektidentität oder zusammengesetzte Zeile vorhanden ist, wird ein Fehler ausgegeben.

session.query(Customers).one()

Mit mehreren Zeilen gefunden -

MultipleResultsFound: Multiple rows were found for one()

Keine Zeilen gefunden -

NoResultFound: No row was found for one()

Die one () -Methode ist nützlich für Systeme, die erwarten, dass "keine gefundenen Elemente" im Vergleich zu "mehrere gefundene Elemente" unterschiedlich behandelt werden.

Skalar ()

Es ruft die one () -Methode auf und gibt bei Erfolg die erste Spalte der Zeile wie folgt zurück:

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

Dies erzeugt folgende SQL-Anweisung -

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