- SQLAlchemy 教程
- SQLAlchemy - 首页
- SQLAlchemy - 简介
- SQLAlchemy Core
- 表达式语言
- 连接数据库
- 创建表
- SQL 表达式
- 执行表达式
- 选择行
- 使用文本SQL
- 使用别名
- 使用 UPDATE 表达式
- 使用 DELETE 表达式
- 使用多个表
- 使用多表更新
- 参数有序更新
- 多表删除
- 使用连接
- 使用连接词
- 使用函数
- 使用集合操作
- SQLAlchemy ORM
- 声明映射
- 创建会话
- 添加对象
- 使用查询
- 更新对象
- 应用过滤器
- 过滤器操作符
- 返回列表和标量
- 文本SQL
- 构建关系
- 处理相关对象
- 处理连接
- 常见关系操作符
- 急切加载
- 删除相关对象
- 多对多关系
- 方言
- SQLAlchemy 有用资源
- SQLAlchemy - 快速指南
- SQLAlchemy - 有用资源
- SQLAlchemy - 讨论
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')]
广告