首页
学习
活动
专区
圈层
工具
发布

SqlAlchemy 2.0 中文文档(二)

如果我们在 COLUMNS 子句中设置了一个特定 Table 的单个列,它也会将该 Table 放在 FROM 子句中: >>> print(select(user_table.c.name)) SELECT...### 带有 GROUP BY / HAVING 的聚合函数 在 SQL 中,聚合函数允许跨多行的列表达式聚合在一起,以产生单个结果。示例包括计数、计算平均值,以及在一组值中定位最大值或最小值。...BY 或 GROUP BY,而无需在 ORDER BY 或 GROUP BY 子句中重新声明表达式,而是使用 COLUMNS 子句中的列名或标记名。...如果我们在 COLUMNS 子句中从特定的 Table 中设置单个列,则它也将该 Table 放入 FROM 子句中: >>> print(select(user_table.c.name)) SELECT...,而无需在 ORDER BY 或 GROUP BY 子句中重新声明表达式,而是使用 COLUMNS 子句中的列名或标记名称。

2.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SqlAlchemy 2.0 中文文档(二十)

    AliasedClass 的一个主要目的是在 ORM 生成的 SQL 语句中作为一个替代,以便一个现有的映射实体可以在多个上下文中使用。...在启用 ORM 的 SELECT 语句中明确使用 join(),需要使用 Select.select_from() 方法,示例如下: from sqlalchemy.orm import join stmt...在启用 ORM 的 SELECT 语句中显式使用join(),需要使用Select.select_from()方法,如下所示: from sqlalchemy.orm import join stmt...AliasedClass的一个主要目的是在 ORM 生成的 SQL 语句中作为一个替代品,使得现有的映射实体可以在多个上下文中使用。...在启用 ORM 的 SELECT 语句中显式使用 join() 涉及使用 Select.select_from() 方法,如下所示: from sqlalchemy.orm import join stmt

    1.5K10

    SqlAlchemy 2.0 中文文档(十五)

    ] () 在选择 ORM 实体时,实体本身作为具有单个元素的行返回结果,而不是一系列单独的列;例如上面,Result 返回仅具有每行单个元素的 Row 对象,该元素保持一个 User 对象: >>>...### 从文本语句中获取 ORM 结果 ORM 支持从来自其他来源的 SELECT 语句加载实体。典型用例是文本 SELECT 语句,在 SQLAlchemy 中使用text()构造表示。...从文本语句中获取 ORM 结果 对象关系映射(ORM)支持从其他来源的 SELECT 语句加载实体。典型用例是文本 SELECT 语句,在 SQLAlchemy 中使用text()结构表示。...ORM 实体可以通过简单的复合选择使用 Select.from_statement() 方法进行选择,该方法在 从文本语句中获取 ORM 结果 中已经说明。...我们在 FROM 子句中定位的所有元素仍然可用作继续连接 FROM 的潜在点。

    1.2K10

    SqlAlchemy 2.0 中文文档(三十六)

    在典型情况下,使用单个参数字典,新传入的键将替换前一个构造中的相同键。在基于列表的“多值”构造中,每个新的值列表都会被扩展到现有的值列表上。...在单个参数字典的典型情况下,新传递的键将替换上一个结构中的相同键。 在基于列表的“多个值”结构的情况下,每个新值列表都被扩展到现有值列表上。...在单个参数字典的典型情况下,新传递的键将替换先前构造中的相同键。在基于列表的“多个值”构造的情况下,每个新值列表都会扩展到现有值列表上。...在典型情况下,单个参数字典中的新传递键将替换先前构造中的相同键。在基于列表的“多个值”构造的情况下,每个新值列表都会扩展到现有值列表上。...在单个参数字典的典型情况下,新传递的键将替换先前构造中的相同键。 在基于列表的“多值”构造的情况下,每个新值列表都被扩展到现有值列表上。

    2.7K10

    SqlAlchemy 2.0 中文文档(五十六)

    为了以 Query 的方式返回单个 ORM 对象,必须首先调用 Result.scalars() 修改器。...单个迁移说明在表格后面的嵌入部分中,可能包含未在此处概述的其他说明。...2.0 版本中,“email_address”列不会自动添加到列子句中,上述查询将失败,因为关系数据库在使用 DISTINCT 时不允许您按“address.email_address”排序,如果它也不在列子句中...为了以Query的方式返回单个 ORM 对象,必须首先调用Result.scalars()修饰符。...2.0 版本中,“email_address” 列不会自动添加到列子句中,上述查询将失败,因为关系数据库在使用 DISTINCT 时不允许您按“address.email_address” 排序,如果它也不在列子句中

    1.6K10

    SqlAlchemy 2.0 中文文档(十八)

    查看此页面的 ORM 设置。以下示例中的一些将重新定义 Book 映射器以修改某些列定义。 使用列推迟限制加载的列 列推迟 指的是在查询该类型的对象时,从 SELECT 语句中省略的 ORM 映射列。...另请参阅 使用列推迟限制加载的列 - 在 ORM 查询指南 中 defer() undefer_group() function sqlalchemy.orm.undefer_group(name: str...另请参阅 将任意 SQL 表达式加载到对象上 - 背景和使用示例 使用列推迟限制加载的列 列推迟是指在查询该类型的对象时,ORM 映射的列在 SELECT 语句中被省略的列。...参见 限制加载哪些列与列延迟 - 在 ORM 查询指南 中 defer() undefer_group() function sqlalchemy.orm.undefer_group(name: str...参见 限制加载哪些列与列延迟 - 在 ORM 查询指南 中 defer() undefer_group() function sqlalchemy.orm.undefer_group(name: str

    84110

    SqlAlchemy 2.0 中文文档(八)

    在函数内部,使用object_session()定位到与当前对象对应的Session,然后用于发出查询: from sqlalchemy.orm import object_session from sqlalchemy...映射属性中的查询时 SQL 表达式 除了能够在映射类上配置固定的 SQL 表达式之外,SQLAlchemy ORM 还包括一个功能,可以在查询时将对象加载为任意 SQL 表达式的结果,并将其设置为其状态的一部分...像所有属性扩展一样,验证器仅在普通用户代码中调用;在 ORM 填充对象时,它们不会被调用: from sqlalchemy.orm import validates class EmailAddress...group – 当标记为延迟加载时,此属性的分组名称。 deferred – 如果为 True,则列属性是“延迟加载”的,意味着它不会立即加载,而是在首次在实例上访问属性时加载。...,方法是在复合类中重新定义所需的行为,然后将复合类映射到通常的单个列的完整长度。

    77310

    SqlAlchemy 2.0 中文文档(五十五)

    SELECT 语句的 FROM 子句中,而必须首先将它们包装在Subquery中。...对象关系映射 IllegalStateChangeError 和并发异常 SQLAlchemy 2.0 引入了一个新系统,详见会话在检测到非法并发或重入访问时主动引发,该系统主动检测在单个 Session...表达式等内容不再被视为FromClause对象,并且不能直接放置在另一个 SELECT 语句的 FROM 子句中,而不是首先将它们包装在Subquery中。...SELECT 表达式,不再被视为 FromClause 对象,而且不能直接放在另一个 SELECT 语句的 FROM 子句中,而必须首先将它们包装在 Subquery 中。...只有在单个对象被删除的情况下才考虑“孤立”问题,这个对象随后会引用零个或多个现在由此单个删除而“孤立”的对象,这将导致这些对象也被删除。

    1.9K10

    SqlAlchemy 2.0 中文文档(五十九)

    _14.html 本文详细介绍了 1.4 版本中进行的单个问题级别的更改。...参考:#8963 sql [sql] [用例] 现在,在任何“文字绑定参数”渲染操作失败的情况下,会抛出一个信息性的重新引发,指示值本身和正在使用的数据类型,以帮助调试在语句中渲染文字参数时出现的...参考文献:#8569 [orm] [bug] [regression] 修复了使用同步会话=’fetch’的 ORM update() 会因为在刷新对象时使用评估器来确定 SET 子句中的表达式的...如果在 ORM 语句中同时使用'*和其他表达式,会引发错误,因为 ORM 无法正确解释这种情况。...具体来说,这适用于 Oracle 等情况,当Column的名称本身需要引号引用时,因此在 DML 语句中生成的绑定参数使用需要绑定处理的数据类型时,引号引用的名称将用于绑定参数。

    1K10

    SqlAlchemy 2.0 中文文档(十七)

    Krabs')] 在上面的例子中,渲染的 SQL 采用了由 SQLite 后端请求的插入多个值功能所使用的形式,在这里,单个参数字典被嵌入到一个单个的 INSERT 语句中,以便可以使用 RETURNING...### 在 ORM 批量 INSERT 语句中发送 NULL 值 批量 ORM 插入功能利用了遗留“批量”插入行为以及总体 ORM 工作单元中存在的行为,即包含 NULL 值的行使用不引用这些列的语句进行...### 在 ORM 批量 INSERT 语句中发送 NULL 值 批量 ORM 插入功能借鉴了遗留的“批量”插入行为,以及 ORM 工作单元总体上的行为,即包含 NULL 值的行将使用不引用这些列的语句进行插入...在 ORM 批量 INSERT 语句中发送 NULL 值 批量 ORM 插入功能利用了在传统“批量”插入行为以及整体 ORM 工作单元中也存在的行为,即包含 NULL 值的行将使用不引用这些列的语句进行...这种操作模式对于在每行基础上传递 SQL 表达式的情况可能很有用,并且在使用 ORM 时使用“upsert”语句时也会使用,后文将在本章的 ORM“upsert”语句中进行说明。

    1.6K10

    Python Web - Flask笔记6

    示例代码如下: user.extend是一个List的继承类,所以使用uselist=False 使用sqlalchemy.orm.backref来定义relationship的反向引用: class...高级查询 group_by 根据某个字段进行分组。...那么在sqlalchemy中,要实现一个子查询,应该使用以下几个步骤: 1. 将子查询按照传统的方式写好查询代码,然后在query对象后面执行subquery方法,将这个查询变成一个子查询。...创建ORM模型: 还是跟使用sqlalchemy一样,定义模型。现在不再是需要使用delarative_base来创建一个基类。而是使用db.Model来作为基类。...修改配置文件: 在alembic.ini中,给sqlalchemy.url设置数据库的连接方式。这个连接方式跟sqlalchemy的方式一样的。

    2.4K10
    领券