SQLAlchemy Core: uso de funciones

Algunas de las funciones importantes utilizadas en SQLAlchemy se analizan en este capítulo.

SQL estándar ha recomendado muchas funciones que se implementan en la mayoría de los dialectos. Devuelven un valor único en función de los argumentos que se le pasan. Algunas funciones SQL toman columnas como argumentos, mientras que otras son genéricas.Thefunc keyword in SQLAlchemy API is used to generate these functions.

En SQL, now () es una función genérica. Las siguientes declaraciones representan la función now () usando func -

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

El resultado de muestra del código anterior puede ser el que se muestra a continuación:

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

Por otro lado, la función count () que devuelve el número de filas seleccionadas de una tabla, se procesa siguiendo el uso de func -

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

A partir del código anterior, se obtendrá el recuento del número de filas en la tabla de estudiantes.

Algunas funciones de SQL integradas se demuestran usando la tabla de empleados con los siguientes datos:

CARNÉ DE IDENTIDAD Nombre Marcas
1 Kamal 56
2 Fernandez 85
3 Sunil 62
4 Bhaskar 76

La función max () se implementa siguiendo el uso de func de SQLAlchemy que dará como resultado 85, las calificaciones máximas totales obtenidas:

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

De manera similar, la función min () que devolverá 56, marcas mínimas, se representará con el siguiente código:

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

Por lo tanto, la función AVG () también se puede implementar utilizando el siguiente código:

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())