📅  最后修改于: 2023-12-03 15:05:19.738000             🧑  作者: Mango
SQLAlchemy是一种流行的Python ORM库,它提供了多种执行表达式的方式,以方便程序员根据特定的需求进行数据操作。本文将会介绍SQLAlchemy核心中的执行表达式相关的内容,包括基本的SELECT、INSERT、UPDATE、DELETE语句、聚合函数、联合查询等。
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.name
和user_table.c.age
表示查询的列,where
代表该语句的过滤条件。
INSERT语句用于将一条新记录插入到数据库中的指定表中。
with engine.connect() as conn:
stmt = user_table.insert().values(name='Jack', age=22)
conn.execute(stmt)
以上代码使用了SQLAlchemy的insert
函数来进行插入操作,并通过values
方法来指定插入记录的内容。
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语句用于从指定表中删除符合指定条件的记录。
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的各种常用操作,可以让程序员更加灵活地进行数据处理。