SQLAlchemy Core - Utilizzo delle funzioni

Alcune delle funzioni importanti utilizzate in SQLAlchemy sono discusse in questo capitolo.

Lo standard SQL ha raccomandato molte funzioni che sono implementate dalla maggior parte dei dialetti. Restituiscono un singolo valore in base agli argomenti ad esso passati. Alcune funzioni SQL accettano le colonne come argomenti mentre altre sono generiche.Thefunc keyword in SQLAlchemy API is used to generate these functions.

In SQL, now () è una funzione generica. Le seguenti istruzioni rendono la funzione now () usando func -

from sqlalchemy.sql import func
result = conn.execute(select([func.now()]))
print (result.fetchone())

Il risultato di esempio del codice sopra può essere come mostrato di seguito -

(datetime.datetime(2018, 6, 16, 6, 4, 40),)

D'altra parte, la funzione count () che restituisce il numero di righe selezionate da una tabella, viene renderizzata seguendo l'uso di func -

from sqlalchemy.sql import func
result = conn.execute(select([func.count(students.c.id)]))
print (result.fetchone())

Dal codice precedente, verrà recuperato il conteggio del numero di righe nella tabella degli studenti.

Alcune funzioni SQL integrate vengono dimostrate utilizzando la tabella Employee con i seguenti dati:

ID Nome Marks
1 Kamal 56
2 Fernandez 85
3 Sunil 62
4 Bhaskar 76

La funzione max () viene implementata seguendo l'uso di func da SQLAlchemy che risulterà in 85, il punteggio massimo totale ottenuto -

from sqlalchemy.sql import func
result = conn.execute(select([func.max(employee.c.marks)]))
print (result.fetchone())

Allo stesso modo, la funzione min () che restituirà 56, segni minimi, sarà resa dal codice seguente:

from sqlalchemy.sql import func
result = conn.execute(select([func.min(employee.c.marks)]))
print (result.fetchone())

Pertanto, la funzione AVG () può essere implementata anche utilizzando il codice seguente:

from sqlalchemy.sql import func
result = conn.execute(select([func.avg(employee.c.marks)]))
print (result.fetchone())

Functions are normally used in the columns clause of a select statement. 
They can also be given label as well as a type. A label to function allows the result 
to be targeted in a result row based on a string name, and a type is required when 
you need result-set processing to occur.from sqlalchemy.sql import func

result = conn.execute(select([func.max(students.c.lastname).label('Name')]))

print (result.fetchone())