📝 SQLAlchemy教程

72篇技术文档
  SQLAlchemy教程

📅  最后修改于: 2020-11-27 07:30:51        🧑  作者: Mango

SQLAlchemy是一种流行的SQL工具箱和对象关系映射器。它是用Python编写的,为应用程序开发人员提供了SQL的全部功能和灵活性。它是在MIT许可下发布的开源和跨平台软件。 SQLAlchemy以其对象关系映射器(ORM)而闻名,使用该类可以将类映射到数据库,从而允许对象模型和数据库模式从一开始就以一种完全分离的方式进行开发。本教程适用于所有希望了解SQLAlchemy及其API的ORM框...

  SQLAlchemy-简介

📅  最后修改于: 2020-11-27 07:31:26        🧑  作者: Mango

SQLAlchemy是一种流行的SQL工具箱和对象关系映射器。它是用Python编写的,为应用程序开发人员提供了SQL的全部功能和灵活性。它是在MIT许可下发布的开源和跨平台软件。SQLAlchemy以其对象关系映射器(ORM)而闻名,使用它可以将类映射到数据库,从而允许对象模型和数据库模式从一开始就以一种完全分离的方式进行开发。随着SQL数据库的大小和性能开始变得重要,它们的行为不像对象集合。另...

  SQLAlchemy Core™语言表达语言

📅  最后修改于: 2020-11-27 07:31:48        🧑  作者: Mango

SQLAlchemy核心包括SQL呈现引擎,DBAPI集成,事务集成和模式描述服务。 SQLAlchemy核心使用提供以模式为中心的用法范例的SQL Expression Language,而SQLAlchemy ORM是以域为中心的用法模式。SQL表达式语言提供了一种使用Python构造表示关系数据库结构和表达式的系统。它提供了一个直接表示关系数据库的原始构造而无需发表意见的系统,这与ORM相比...

  SQLAlchemy核心-连接到数据库

📅  最后修改于: 2020-11-27 07:32:17        🧑  作者: Mango

在上一章中,我们讨论了有关SQLAlchemy中的表达语言。现在,让我们继续进行连接数据库所涉及的步骤。Engine类将Pool和Dialect连接在一起,以提供数据库连接性和行为的来源。使用create_engine()函数实例化Engine类的对象。create_engine()函数将数据库作为一个参数。不需要在任何地方定义数据库。标准调用表单必须将URL作为第一个位置参数发送,通常是指示数据...

  SQLAlchemy核心-创建表

📅  最后修改于: 2020-11-27 07:32:56        🧑  作者: Mango

现在让我们讨论如何使用create table函数。SQL表达式语言根据表列构造其表达式。 SQLAlchemy Column对象表示数据库表中的一列,而该表又由Tableobject表示。元数据包含表和关联对象的定义,例如索引,视图,触发器等。因此,来自SQLAlchemy Metadata的MetaData类的对象是Table对象及其关联模式构造的集合。它包含Table对象的集合以及对Engi...

  SQLAlchemy核心-SQL表达式

📅  最后修改于: 2020-11-27 07:33:22        🧑  作者: Mango

在本章中,我们将简要介绍SQL表达式及其功能。SQL表达式是使用相对于目标表对象的相应方法构造的。例如,通过执行insert()方法来创建INSERT语句,如下所示:以上方法的结果是一个插入对象,可以使用str()函数进行验证。下面的代码插入详细信息,例如学生ID,姓名,姓氏。通过values()方法可以在特定字段中插入值以插入对象。相同的代码如下-在Python控制台上回显的SQL没有显示实际值...

  SQLAlchemy核心-执行表达式

📅  最后修改于: 2020-11-27 07:34:10        🧑  作者: Mango

在上一章中,我们学习了SQL表达式。在本章中,我们将研究这些表达式的执行。为了执行生成的SQL表达式,我们必须获得一个表示活动签出的DBAPI连接资源的连接对象,然后按以下代码所示提供该表达式对象。以下insert()对象可用于execute()方法-控制台显示执行SQL表达式的结果,如下所示-以下是显示使用SQLAlchemy的核心技术执行INSERT查询的完整代码段-可以通过使用SQLite ...

  SQLAlchemy核心-选择行

📅  最后修改于: 2020-11-27 07:34:50        🧑  作者: Mango

在本章中,我们将讨论在表对象中选择行的概念。表对象的select()方法使我们能够构造SELECT表达式。select对象通过str(s)函数转换为SELECT查询,如下所示-我们可以使用此选择对象作为连接对象的execute()方法的参数,如以下代码所示:当执行以上语句时, Python Shell回显以下等效的SQL表达式-结果变量等效于DBAPI中的游标。现在,我们可以使用fetchone(...

  SQLAlchemy核心-使用文本SQL

📅  最后修改于: 2020-11-27 07:35:25        🧑  作者: Mango

对于那些已经知道SQL并且不需要强烈支持动态功能的语句的情况,SQLAlchemy允许您仅使用字符串。 text()构造用于组成一个文本语句,该语句几乎不变地传递到数据库。它构造一个新的TextClause,直接表示文本SQL字符串,如下面的代码所示-与纯字符串相比,text()提供的优势是-对绑定参数的后端中立支持每个语句的执行选项结果栏输入行为text()函数需要使用命名冒号格式的Bound参...

  SQLAlchemy核心-使用别名

📅  最后修改于: 2020-11-27 07:35:51        🧑  作者: Mango

SQL中的别名对应于表或SELECT语句的“重命名”版本,只要您说“ SELECT * FROM table1 AS a”,该别名就会出现。 AS为表创建一个新名称。别名允许使用唯一名称引用任何表或子查询。对于表,这允许在FROM子句中多次命名同一个表。它为该语句表示的列提供了一个父名称,从而允许相对于该名称引用它们。在SQLAlchemy中,可以使用From Clause.alias()方法将任...

  使用UPDATE表达式

📅  最后修改于: 2020-11-27 07:36:18        🧑  作者: Mango

目标表对象上的update()方法构造等效的UPDATE SQL表达式。结果更新对象上的values()方法用于指定UPDATE的SET条件。如果保留为None,则SET条件是根据在执行和/或编译语句期间传递给语句的参数确定的。where子句是一个可选表达式,用于描述UPDATE语句的WHERE条件。以下代码段将students表中“ lastname”列的值从“ Khanna”更改为“ Kapo...

  使用DELETE表达式

📅  最后修改于: 2020-11-27 07:36:41        🧑  作者: Mango

在上一章中,我们了解了Update表达式的作用。我们要学习的下一个表达式是Delete。可以通过在目标表对象上运行delete()方法来实现删除操作,如以下语句所示:对于学生表,上面的代码行构造一个SQL表达式,如下所示:但是,这将删除学生表中的所有行。通常,DELETE查询与WHERE子句指定的逻辑表达式关联。以下语句显示参数-结果SQL表达式将具有一个绑定参数,该参数将在执行该语句时在运行时替...

  SQLAlchemy核心-使用多个表

📅  最后修改于: 2020-11-27 07:37:38        🧑  作者: Mango

RDBMS的重要功能之一是在表之间建立关系。可以在相关表上执行SELECT,UPDATE和DELETE之类的SQL操作。本节介绍使用SQLAlchemy的这些操作。为此,在我们的SQLite数据库(college.db)中创建了两个表。学生表的结构与上一节相同。而地址表具有st_id列,该列使用外键约束映射到学生表中的id列。以下代码将在college.db中创建两个表-上面的代码将转换为针对学生...

  使用多个表更新

📅  最后修改于: 2020-11-27 07:38:13        🧑  作者: Mango

在上一章中,我们讨论了如何使用多个表。因此,我们将更进一步,并在本章中学习多个表更新。使用SQLAlchemy的表对象,可以在update()方法的WHERE子句中指定多个表。 PostgreSQL和Microsoft SQL Server支持引用多个表的UPDATE语句。这实现了“ UPDATE FROM”语法,该语法一次更新一个表。但是,可以在WHERE子句中的其他“ FROM”子句中直接引用...

  参数排序的更新

📅  最后修改于: 2020-11-27 07:38:43        🧑  作者: Mango

原始SQL的UPDATE查询具有SET子句。它由update()构造使用原始Table对象中给定的列顺序来呈现。因此,具有特定列的特定UPDATE语句每次都将呈现为相同。由于参数本身作为Python字典键传递给Update.values()方法,因此没有其他固定顺序可用。在某些情况下,SET子句中呈现的参数顺序很重要。在MySQL中,提供对列值的更新是基于其他列值的更新。以下语句的结果-结果将不同...