📜  SQLAlchemy – 简介

📅  最后修改于: 2022-05-13 01:55:44.989000             🧑  作者: Mango

SQLAlchemy – 简介

SQLAlchemy基本上被称为Python SQL 的工具包,它为开发人员提供了使用 SQL 数据库的灵活性。使用这个特定库的好处是允许Python开发人员使用该语言自己的对象,而不是编写单独的 SQL 查询。他们基本上可以使用Python访问和使用数据库。

SQLAlchemy 也是一种对象关系映射器,它是一种用于在数据库或 OOP 语言(如Python)之间转换数据的技术。

安装

让我们看一下设置,以及如何有效地设置一个能够使用这个特定库的环境。安装库需要Python版本 2.7 或更高版本。有两种安装 SQLAlchemy 的方法:

第 1 步:最有效和最简单的方法是使用Python包管理器或pip 。这可以通过在终端中键入以下命令轻松完成

pip install sqlalchemy

第 2 步:但是,对于Python的 anaconda 发行版,或者如果您使用的是这个特定平台,那么您可以从conda 终端安装它:

conda install -c anaconda sqlalchemy

确认命令:检查库是否安装正确或检查其版本,可以使用以下命令(版本可以有效显示,在这种情况下为1.3.24,这是SQLAlchemy的最新版本:

>>> import sqlalchemy
>>>sqlalchemy.__version__
'1.3.24'

连接到数据库

现在要开始连接到数据库以访问数据并使用它,我们首先需要使用以下命令建立连接:

Python3
import sqlalchemy as db
  
engine = db.create_engine('dialect+driver://user:pass@host:port/db')


Python3
db.select([films]).where(films.columns.certification == 'PG')


Python3
db.select([films]).where(db.and_(films.columns.certification == 'R',
                                 films.columns.release_year > 2003))


示例 1:

假设我们想从名为电影的文件中获取电影的详细信息,该文件的认证为PG。假设有一个类别叫做Certification 。要在 SQL 中解决这个问题,我们将输入以下查询:

SELECT *
FROM films
WHERE certification = 'PG'

现在使用 SQLAlchemy 库:

Python3

db.select([films]).where(films.columns.certification == 'PG')

SQLAlchemy 库中使用了某些命令,尽管许多关键字往往与 SQL 中的关键字基本相同例如整体查询非常不同。让我们看另一个示例,并尝试找出 SQL 版本和 SQLAlchemy 库版本之间的任何差异/相似之处。

示例 2:  

从名为电影的文件中获取电影的所有详细信息,其中认证为R且发行日期超过2003 年。假设文件中存在以下类别,电影: release_year认证

在 SQL 中,我们会这样处理它:

SELECT *
FROM files
WHERE certification = 'R' and release_year > 2003  

SQLAlchemy 版本:

Python3

db.select([films]).where(db.and_(films.columns.certification == 'R',
                                 films.columns.release_year > 2003))

正如我们所看到的,这个 SQLAlchemy 版本与之前的版本之间似乎有一些相似之处。我们可以看到它们都使用了column这个词,它基本上是用来指代一个特定的类别。在单词column之前出现文件的名称,然后是类别的名称。就像我们在 SQL 中有关键字SELECT一样,我们也有关键字db.select ,它与 SQL 中的SELECT执行相同的工作。