📜  SQLAlchemy核心-执行表达式(1)

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

SQLAlchemy核心-执行表达式

SQLAlchemy是一种流行的Python ORM库,它提供了多种执行表达式的方式,以方便程序员根据特定的需求进行数据操作。本文将会介绍SQLAlchemy核心中的执行表达式相关的内容,包括基本的SELECT、INSERT、UPDATE、DELETE语句、聚合函数、联合查询等。

基本的SELECT语句

SELECT语句用于从数据库中查询数据,并返回符合指定条件的一组数据行。

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

engine = create_engine('sqlite:///test.db', echo=True)

metadata = MetaData()
user_table = Table('user', metadata,
                   Column('id', Integer, primary_key=True),
                   Column('name', String),
                   Column('age', Integer),
                   )

with engine.connect() as conn:
    stmt = select(user_table.c.name, user_table.c.age).where(user_table.c.id == 1)
    result = conn.execute(stmt).fetchone()

print(result)

以上代码使用了SQLAlchemy的select函数来进行查询,其中user_table.c.nameuser_table.c.age表示查询的列,where代表该语句的过滤条件。

基本的INSERT语句

INSERT语句用于将一条新记录插入到数据库中的指定表中。

with engine.connect() as conn:
    stmt = user_table.insert().values(name='Jack', age=22)
    conn.execute(stmt)

以上代码使用了SQLAlchemy的insert函数来进行插入操作,并通过values方法来指定插入记录的内容。

基本的UPDATE语句

UPDATE语句用于在指定的表中更新符合指定条件的记录。

with engine.connect() as conn:
    stmt = user_table.update().where(user_table.c.id == 1).values(age=23)
    conn.execute(stmt)

以上代码使用了SQLAlchemy的update函数来进行更新操作,并通过values方法来指定要更新的记录内容。

基本的DELETE语句

DELETE语句用于从指定表中删除符合指定条件的记录。

with engine.connect() as conn:
    stmt = user_table.delete().where(user_table.c.id == 1)
    conn.execute(stmt)

以上代码使用了SQLAlchemy的delete函数来进行删除操作,其中where代表该语句的过滤条件。

聚合函数

SQLAlchemy支持多种聚合函数,比如COUNT、SUM、AVG、MAX等。

with engine.connect() as conn:
    stmt = select(func.count(user_table.c.id))
    result = conn.execute(stmt).fetchone()

print(result)

以上代码使用了SQLAlchemy的聚合函数count,并通过func方法来调用该函数。

联合查询

在SQLAlchemy中,可以通过JOIN和UNION等方式进行联合查询。

from sqlalchemy import join

with engine.connect() as conn:
    stmt = select(user_table.c.name, user_table.c.age, order_table.c.order_num).select_from(
        join(user_table, order_table, user_table.c.id == order_table.c.user_id))
    result = conn.execute(stmt).fetchall()

print(result)

以上代码是一个使用JOIN方式进行联合查询的示例。通过JOIN将两个表连接在一起,并通过select_from方法来指定查询的表。

总体来看,SQLAlchemy执行表达式的相关功能非常丰富,涵盖了SQL的各种常用操作,可以让程序员更加灵活地进行数据处理。