SQLAlchemy Core - 使用別名



SQL 中的別名對應於表的“重新命名”版本或 SELECT 語句,只要你說“SELECT * FROM table1 AS a”就會發生這種情況。AS 為表建立了一個新名稱。別名允許任何表或子查詢都以唯一的名稱引用。

對於表,這允許在 FROM 子句中多次命名同一個表。它為語句表示的列提供了一個父名稱,允許相對於此名稱引用它們。

在 SQLAlchemy 中,任何 Table、select() 結構或其他可選擇物件都可以使用From Clause.alias()方法轉換為別名,該方法會生成一個 Alias 結構。sqlalchemy.sql 模組中的 alias() 函式表示別名,通常使用 AS 關鍵字應用於 SQL 語句中的任何表或子選擇。

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

此別名現在可以在 select() 結構中用於引用 students 表 -

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')]
廣告

© . All rights reserved.