FastAPI+Sqlalchemy执行【Mysql】原生sql

一. 前言

  • 当有的复杂sql 用orm不好写出来的时候,此时想要用原生sql查询
    • 原生sql查询,查出的结果是对象
    • 原生sql查询,查询结果列表套元组

当你使用 SQLAlchemy 并希望通过创建的 session 对象来执行原生 SQL 语句时,可以使用 session.execute() 方法。这种方式允许你直接在数据库中运行 SQL 语句,同时仍然能够享受 SQLAlchemy 会话管理和事务控制的好处。以下是如何使用 session.execute() 方法执行查询、插入、更新和删除操作的示例。

二. 使用

from sqlalchemy.orm import sessionmaker, relationship
from sqlalchemy import create_engine
 
engine = create_engine("mysql+pymysql://root:[email protected]:3306/db001", max_overflow=0, pool_size=5)
Session = sessionmaker(bind=engine)
session = Session()

2.1. 执行原生sql方式一:

2.1.1 查询方式一:

cursor = session.execute('select * from users')
result = cursor.fetchall()
print(result) #列表套元组
# 添加
cursor = session.execute('insert into users(name,email) values(:name,:email)',
                         params={
   
    
    "name": 'lqz', 'email': '[email protected]'})
session