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()
相关推荐
我命由我123454 分钟前
Android Studio 提示信息 ‘equals(““)‘ can be replaced with ‘isEmpty()‘
android·ide·android studio·安卓·android jetpack·android-studio·android runtime
Bryce李小白13 分钟前
Flutter实现Android原生相机拍照
android·数码相机·flutter
初学者-Study14 分钟前
Android基础(一) 运行HelloWorld
android·helloworld·模拟器运行
BUG创建者1 小时前
openlayer根据不同的状态显示不同的图层颜色
android·java·javascript
用户2018792831671 小时前
浅谈画框ImageView的background和src属性的差异
android
2501_915909062 小时前
iOS 加固工具实战解析,主流平台审核机制与工具应对策略
android·ios·小程序·https·uni-app·iphone·webview
马 孔 多 在下雨2 小时前
安卓服务与多线程
android
2501_915106324 小时前
iOS WebView 调试实战,第三方脚本加载失败与内容安全策略冲突问题排查指南
android·ios·小程序·https·uni-app·iphone·webview
消失的旧时光-19435 小时前
Android 键盘
android·键盘监听
Jackilina_Stone18 小时前
【faiss】用于高效相似性搜索和聚类的C++库 | 源码详解与编译安装
android·linux·c++·编译·faiss