SQLAlchemy Core - Sử dụng bí danh

Bí danh trong SQL tương ứng với phiên bản "đã đổi tên" của bảng hoặc câu lệnh SELECT, xảy ra bất cứ lúc nào bạn nói "SELECT * FROM table1 AS a". AS tạo một tên mới cho bảng. Bí danh cho phép bất kỳ bảng hoặc truy vấn con nào được tham chiếu bằng một tên duy nhất.

Trong trường hợp một bảng, điều này cho phép cùng một bảng được đặt tên trong mệnh đề FROM nhiều lần. Nó cung cấp tên cha cho các cột được biểu thị bằng câu lệnh, cho phép chúng được tham chiếu liên quan đến tên này.

Trong SQLAlchemy, bất kỳ cấu trúc Table, select () nào hoặc đối tượng có thể chọn khác đều có thể được chuyển thành bí danh bằng cách sử dụng From Clause.alias()phương thức này tạo ra một cấu trúc Bí danh. Hàm alias () trong mô-đun sqlalchemy.sql đại diện cho một bí danh, thường được áp dụng cho bất kỳ bảng hoặc lựa chọn con nào trong câu lệnh SQL bằng cách sử dụng từ khóa AS.

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

Bí danh này hiện có thể được sử dụng trong cấu trúc select () để tham chiếu đến bảng sinh viên -

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

Điều này chuyển sang biểu thức SQL như sau:

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

Bây giờ chúng ta có thể thực thi truy vấn SQL này bằng phương thức execute () của đối tượng kết nối. Mã hoàn chỉnh như sau:

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

Khi dòng mã trên được thực thi, nó tạo ra kết quả sau:

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