SQLAlchemy Core - การใช้นามแฝง

นามแฝงใน SQL สอดคล้องกับเวอร์ชัน "เปลี่ยนชื่อ" ของตารางหรือคำสั่ง SELECT ซึ่งเกิดขึ้นได้ทุกเมื่อที่คุณพูดว่า "SELECT * FROM table1 AS a" AS สร้างชื่อใหม่สำหรับตาราง นามแฝงอนุญาตให้อ้างอิงตารางหรือคิวรีย่อยด้วยชื่อเฉพาะ

ในกรณีของตารางจะทำให้สามารถตั้งชื่อตารางเดียวกันในส่วนคำสั่ง FROM ได้หลายครั้ง มีชื่อพาเรนต์สำหรับคอลัมน์ที่แสดงโดยคำสั่งซึ่งทำให้สามารถอ้างอิงได้โดยสัมพันธ์กับชื่อนี้

ใน SQLAlchemy ตารางใด ๆ เลือก () สร้างหรือวัตถุที่เลือกได้อื่น ๆ สามารถเปลี่ยนเป็นนามแฝงโดยใช้ From Clause.alias()วิธีการซึ่งสร้างโครงสร้างนามแฝง ฟังก์ชัน alias () ในโมดูล sqlalchemy.sql แสดงถึงนามแฝงโดยทั่วไปจะใช้กับตารางใด ๆ หรือเลือกย่อยภายในคำสั่ง SQL โดยใช้คีย์เวิร์ด AS

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

ตอนนี้เราสามารถเรียกใช้แบบสอบถาม SQL นี้ด้วยวิธี execute () ของวัตถุการเชื่อมต่อ รหัสที่สมบูรณ์มีดังนี้ -

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