📅  最后修改于: 2020-11-27 07:35:51             🧑  作者: Mango
SQL中的别名对应于表或SELECT语句的“重命名”版本,只要您说“ SELECT * FROM table1 AS a”,该别名就会出现。 AS为表创建一个新名称。别名允许使用唯一名称引用任何表或子查询。
对于表,这允许在FROM子句中多次命名同一个表。它为该语句表示的列提供了一个父名称,从而允许相对于该名称引用它们。
在SQLAlchemy中,可以使用From Clause.alias()方法将任何Table,select()构造或其他可选对象转换为别名,该方法将生成Alias构造。 sqlalchemy.sql模块中的alias()函数表示别名,通常使用AS关键字将其应用于SQL语句中的任何表或子选择。
from sqlalchemy.sql import alias
st = students.alias("a")
现在可以在select()构造中使用此别名来引用学生表-
s = select([st]).where(st.c.id>2)
这转换为SQL表达式如下-
SELECT a.id, a.name, a.lastname FROM students AS a WHERE a.id > 2
现在,我们可以使用连接对象的execute()方法执行此SQL查询。完整的代码如下-
from sqlalchemy.sql import alias, select
st = students.alias("a")
s = select([st]).where(st.c.id > 2)
conn.execute(s).fetchall()
当执行以上代码行时,它将生成以下输出-
[(3, 'Komal', 'Bhandari'), (4, 'Abdul', 'Sattar'), (5, 'Priya', 'Rajhans')]