SQLAlchemy 的数据库引擎engine与连接对象Connection

SQLAlchemy 的 create_engine 函数用于创建一个数据库引擎,而连接对象Connection 则用于实际执行数据库操作。

  1. create_engine

    create_engine 是 SQLAlchemy 中用于创建数据库引擎的函数。它接受一个数据库连接字符串作为参数,并返回一个 Engine 实例,该实例代表与数据库的连接。数据库连接字符串通常包括数据库类型、用户名、密码、主机地址、端口号以及数据库名等信息。例如,针对 SQLite 数据库,数据库连接字符串可能是 sqlite:///example.db,其中 example.db 是 SQLite 数据库文件的路径。

    engine = create_engine('sqlite:///example.db')

    使用 create_engine 创建了一个 SQLite 数据库引擎,并将其赋值给变量 engine

  2. 连接对象(Connection object)

    连接对象表示与数据库的实际连接,并提供了执行数据库操作的方法。可以通过数据库引擎的 connect() 方法来获取连接对象。一旦获取了连接对象,就可以使用它来执行各种数据库操作,如查询、插入、更新、删除等。

    with engine.connect() as connection: # 在这里执行数据库操作 connection.execute("INSERT INTO my_table (column1, column2) VALUES ('value1', 'value2')")

    使用 engine.connect() 获取了一个连接对象,并在 with 语句中使用它来执行插入操作。
    通常情况下,使用 with 语句来管理连接,确保在退出代码块时自动关闭连接

总的来说,create_engine 函数用于创建数据库引擎,而连接对象则用于实际执行数据库操作。连接对象是通过数据库引擎的 connect() 方法获取的,并且是在连接对象上调用 execute() 方法来执行数据库操作

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

# 创建数据库引擎
engine = create_engine('sqlite:///connectionexample.db')

# 定义元数据
metadata = MetaData()

# 定义数据表
users = Table('users', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String),
    Column('age', Integer),
    Column('email', String)
)

# 创建数据表
metadata.create_all(engine)

# 插入数据
def insert_data(connection):
    connection.execute(users.insert(), [
        {'name': 'Alice', 'age': 30, 'email': 'alice@example.com'},
        {'name': 'Bob', 'age': 25, 'email': 'bob@example.com'}
    ])

# 查询数据
def select_data(connection):
    result = connection.execute(users.select())
    for row in result:
        print(row)

# 更新数据
def update_data(connection):
    connection.execute(users.update().where(users.c.name == 'Alice').values(age=35))

# 删除数据
def delete_data(connection):
    connection.execute(users.delete().where(users.c.name == 'Bob'))

# 使用连接对象执行数据库操作
with engine.connect() as connection:
    # 插入数据
    insert_data(connection)

    # 查询数据
    print("Data after insertion:")
    select_data(connection)

    # 更新数据
    update_data(connection)
    print("\nData after updating:")
    select_data(connection)

    # 删除数据
    delete_data(connection)
    print("\nData after deletion:")
    select_data(connection)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值