📜  SQLAlchemy核心-使用函数(1)

📅  最后修改于: 2023-12-03 15:05:19.720000             🧑  作者: Mango

SQLAlchemy核心-使用函数

SQLAlchemy是Python中最流行的关系数据库ORM框架之一。SQLAlchemy核心是一个轻量级的、低层次的、基于SQL语句的工具包,它允许你使用Python语言来操作关系数据库。在SQLAlchemy中,使用函数是一种非常常见的操作方式,本文将介绍在SQLAlchemy中如何使用函数。

数据库连接

在开始之前,我们需要先建立一个数据库连接。我们可以使用SQLAlchemy中的create_engine函数来创建一个连接:

from sqlalchemy import create_engine

engine = create_engine('postgresql://username:password@host:port/database')

其中,postgresql表示使用的数据库类型,usernamepassword表示连接数据库所需要的用户名和密码,hostport表示数据库所在的主机和端口,database表示需要连接的数据库名称。你需要根据你自己的数据库信息进行相应的修改。

建表

在使用函数之前,我们需要先创建一张表。在SQLAlchemy中,使用Table类来创建表。例如,我们创建一个users表:

from sqlalchemy import Table, Column, Integer, String, MetaData

metadata = MetaData()

users = Table(
    'users',
    metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String),
    Column('age', Integer),
    Column('email', String),
)

在上面的代码中,我们使用Column类来定义表中的列,并将这些列构建成一张表。

插入数据

下面让我们来看看如何使用函数来插入数据。在SQLAlchemy中,使用insert函数可以插入数据。例如,我们插入一条记录到users表中:

from sqlalchemy import insert

conn = engine.connect()

ins = insert(users).values(name='Alice', age=25, email='alice@example.com')

result = conn.execute(ins)

print(result.lastrowid)

在上面的代码中,我们构造了一个insert对象,并将它传递给execute函数。这个insert对象使用values函数来指定需要插入的数据。execute函数返回一个ResultProxy对象,其中lastrowid属性就表示刚刚插入的记录的id值。

查询数据

接下来,让我们看看如何使用函数来查询数据。在SQLAlchemy中,使用select函数来查询数据。例如,我们查询所有users表中的记录:

from sqlalchemy import select

sel = select(users)

result = conn.execute(sel)

for row in result:
    print(row)

在上面的代码中,我们构造了一个select对象,并将它传递给execute函数。execute函数返回一个ResultProxy对象,其中每个元素表示一条记录。我们可以对这个对象进行迭代,来访问每一条记录的数据。

更新数据

有时,我们需要使用函数来更新数据库中的数据。在SQLAlchemy中,使用update函数可以更新数据。例如,我们将nameAlice的记录的age字段更新为26

from sqlalchemy import update

upd = update(users).where(users.c.name == 'Alice').values(age=26)

result = conn.execute(upd)

print(result.rowcount)

在上面的代码中,我们构造了一个update对象,并使用where函数来限定要更新的记录。execute函数返回一个ResultProxy对象,其中rowcount表示更新了多少条记录。

删除数据

最后,让我们看看如何使用函数来删除数据。在SQLAlchemy中,使用delete函数可以删除数据。例如,我们删除age小于25的记录:

from sqlalchemy import delete

dlt = delete(users).where(users.c.age < 25)

result = conn.execute(dlt)

print(result.rowcount)

在上面的代码中,我们构造了一个delete对象,并使用where函数来限定要删除的记录。execute函数返回一个ResultProxy对象,其中rowcount表示删除了多少条记录。

结论

本文介绍了在SQLAlchemy中如何使用函数。使用函数可以让我们更方便地操作数据库。如果你使用了其他数据库,可以根据需要进行相应的修改。