SQLAlchemy Core - Utilizzo di alias
L'alias in SQL corrisponde a una versione "rinominata" di una tabella o di un'istruzione SELECT, che si verifica ogni volta che si pronuncia "SELECT * FROM table1 AS a". L'AS crea un nuovo nome per la tabella. Gli alias consentono di fare riferimento a qualsiasi tabella o sottoquery con un nome univoco.
Nel caso di una tabella, ciò consente di denominare più volte la stessa tabella nella clausola FROM. Fornisce un nome padre per le colonne rappresentate dall'istruzione, consentendo loro di fare riferimento in relazione a questo nome.
In SQLAlchemy, qualsiasi tabella, costrutto select () o altro oggetto selezionabile può essere trasformato in un alias utilizzando il From Clause.alias()metodo, che produce un costrutto Alias. La funzione alias () nel modulo sqlalchemy.sql rappresenta un alias, tipicamente applicato a qualsiasi tabella o sotto-selezione all'interno di un'istruzione SQL utilizzando la parola chiave AS.
from sqlalchemy.sql import alias
st = students.alias("a")
Questo alias può ora essere utilizzato nel costrutto select () per fare riferimento alla tabella degli studenti -
s = select([st]).where(st.c.id>2)
Questo si traduce in un'espressione SQL come segue:
SELECT a.id, a.name, a.lastname FROM students AS a WHERE a.id > 2
Ora possiamo eseguire questa query SQL con il metodo execute () dell'oggetto connessione. Il codice completo è il seguente:
from sqlalchemy.sql import alias, select
st = students.alias("a")
s = select([st]).where(st.c.id > 2)
conn.execute(s).fetchall()
Quando viene eseguita la riga di codice sopra, genera il seguente output:
[(3, 'Komal', 'Bhandari'), (4, 'Abdul', 'Sattar'), (5, 'Priya', 'Rajhans')]