python sqlalchemy操作mysql数据库(ORM方式)

查询

使用sql语句查询:

python 复制代码
from urllib import parse
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData

con = create_engine('mysql+pymysql://root:root@localhost:3306/testdb?charset=utf8')  
# pd.read_sql(sql,con) 

result = con.execute("SELECT * FROM testtable")

# 处理查询结果
for row in result:
    print(row)
con.dispose()

使用ORM方式查询:

python 复制代码
from urllib import parse
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData

metadata = MetaData()
employees = Table('testtable', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String),
    Column('email', String),
)

engine  = create_engine('mysql+pymysql://root:root@localhost:3306/testdb?charset=utf8')  
# pd.read_sql(sql,con) 

s = employees.select()

conn = engine.connect()
result = conn.execute(s)

# 处理查询结果
for row in result:
    print(row)

conn.close()
engine.dispose()

插入:

python 复制代码
from urllib import parse
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData

metadata = MetaData()
employees = Table('testtable', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String),
    Column('email', String),
)

engine  = create_engine('mysql+pymysql://root:root@localhost:3306/testdb?charset=utf8')  
# pd.read_sql(sql,con) 

ins = employees.insert().values(id=11, name="nameereee", email="kkkkkkkkkk")

# 执行插入语句
conn = engine.connect()
conn.execute(ins)

# 关闭连接
conn.close()
engine.dispose()

删除:

python 复制代码
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine  = create_engine('mysql+pymysql://root:root@localhost:3306/testdb?charset=utf8')  

metadata = MetaData()
employees = Table('testtable', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String),
    Column('email', String),
)

conn = engine.connect()
stmt = employees.delete().where(employees.c.name == 'nameereee')
conn.execute(stmt)

s = employees.select()
conn.execute(s).fetchall()

更新:

python 复制代码
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine  = create_engine('mysql+pymysql://root:root@localhost:3306/testdb?charset=utf8')  

metadata = MetaData()
employees = Table('testtable', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String),
    Column('email', String),
)

conn = engine.connect()
stmt=employees.update().where(employees.c.id=='3').values(name='Kapoor')
conn.execute(stmt)

s = employees.select()
conn.execute(s).fetchall()
相关推荐
Gary Studio1 天前
安卓HAL C++基础-命名域
android
诸神黄昏EX1 天前
Android Google XTS
android
eSsO KERF1 天前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
pengyu1 天前
【Kotlin 协程修仙录 · 筑基境 · 后阶】 | 调度器的艺术:Dispatchers 四大护法与 withContext 性能密码
android·kotlin
uElY ITER1 天前
MySQL 中如何进行 SQL 调优
android·sql·mysql
xxjj998a1 天前
Laravel3.x:奠定现代PHP框架的重要里程碑
android·开发语言·php
Yang-Never1 天前
Git -> Git Worktree 工作树
android·开发语言·git·android studio
xingpanvip1 天前
星盘接口开发文档:日运语料接口指南
android·开发语言·前端·css·php·lua
计算机安禾1 天前
【Linux从入门到精通】第42篇:深入理解Linux内存管理
android·linux·运维
XD7429716361 天前
科技早报晚报|2026年5月1日:本地优先文档、安卓离线 IDE 与双击即用密码库,今天最值得跟进的 3 个机会
android·ide·科技·科技新闻·开发者工具·本地优先