SQLAlchemy Core - Usando Aliases

O alias em SQL corresponde a uma versão “renomeada” de uma tabela ou instrução SELECT, que ocorre sempre que você diz “SELECT * FROM table1 AS a”. O AS cria um novo nome para a tabela. Os aliases permitem que qualquer tabela ou subconsulta seja referenciada por um nome exclusivo.

No caso de uma tabela, isso permite que a mesma tabela seja nomeada na cláusula FROM várias vezes. Ele fornece um nome pai para as colunas representadas pela instrução, permitindo que sejam referenciadas em relação a esse nome.

Em SQLAlchemy, qualquer Table, construção select () ou outro objeto selecionável pode ser transformado em um alias usando o From Clause.alias()método, que produz uma construção Alias. A função alias () no módulo sqlalchemy.sql representa um alias, como normalmente aplicado a qualquer tabela ou sub-seleção dentro de uma instrução SQL usando a palavra-chave AS.

from sqlalchemy.sql import alias
st = students.alias("a")

Este alias agora pode ser usado na construção select () para se referir à tabela de alunos -

s = select([st]).where(st.c.id>2)

Isso se traduz em expressão SQL da seguinte forma -

SELECT a.id, a.name, a.lastname FROM students AS a WHERE a.id > 2

Agora podemos executar esta consulta SQL com o método execute () do objeto de conexão. O código completo é o seguinte -

from sqlalchemy.sql import alias, select
st = students.alias("a")
s = select([st]).where(st.c.id > 2)
conn.execute(s).fetchall()

Quando a linha de código acima é executada, ele gera a seguinte saída -

[(3, 'Komal', 'Bhandari'), (4, 'Abdul', 'Sattar'), (5, 'Priya', 'Rajhans')]