【数据库篇|ORM】一篇速通SQLALchemy必备知识 一.SQLALchemy概述1.1 定义SQLAlchemy 是 Python 生态中最强大、最成熟的数据库工具库它既是一个SQL 工具包也是一个对象关系映射ORM框架。ORM 让你用操作对象的方式操作数据库。1.2 安装命令行cmd或者pyCharm终端输入pip install sqlalchemy二.数据库的连接和表的创建2.1 SQLAlchemy连接mysql数据库2.1.1 使用mysql创建表DROP TABLE IF EXISTS student; CREATE TABLE student ( id int NOT NULL AUTO_INCREMENT, name varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, PRIMARY KEY (id) USING BTREE ) ENGINE InnoDB AUTO_INCREMENT 5 CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ROW_FORMAT Dynamic; SET FOREIGN_KEY_CHECKS 1;结果ps:如果表保存过sql预览还是为空可以右键点击表名选择转储SQL文件的仅结构之后选择保持位置后会生成一个.sql文件打开即为建表代码。2.1.2 连接 MySQL 数据库1.导包import sqlalchemy2.创建引擎engine sqlalchemy.create_engine(mysqlpymysql://用户名:密码localhost:端口号/数据库名)数据库类型mysql驱动pymysqlps:pymysql安装pip install pymysql3.连接conn engine.connect()4.查询query sqlalchemy.text(SELECT * FROM student) result conn.execute(query)5.输出结果for row in result: print(row)针对以上所创建的数据库而言会输出6.清理conn.close() engine.dispose()2.2SQLAlchemy Core创建表1.导包import sqlalchemy2.创建引擎engine sqlalchemy.create_engine(mysqlpymysql://用户名:密码localhost:端口号/数据库名,echoTrue)3.定义元数据metadata sqlalchemy.MetaData()4.表goods sqlalchemy.Table( goods, metadata, sqlalchemy.Column(id, sqlalchemy.Integer, primary_keyTrue), sqlalchemy.Column(name, sqlalchemy.String(128), uniqueTrue, nullableFalse), sqlalchemy.Column(price, sqlalchemy.Integer, nullableFalse), ) metadata.create_all(engine)三.增删改查3.1 增单增insert_apple goods.insert().values(id1,nameapple,price100) with engine.connect() as conn: result conn.execute(insert_apple) conn.commit() print(插入成功受影响行数, result.rowcount)多增goods_insert goods.insert() with engine.connect() as conn: conn.execute(goods_insert,[ {name: apple, price: 100}, {name: book, price: 200}, {name: peer, price: 300}, ]) conn.commit()3.2 查with engine.connect() as connection: query goods.select().where(goods.c.id 1) results connection.execute(query)3.3 删with engine.connect() as conn: delete_query goods.delete().where(goods.id 1) conn.execute(delete_query) conn.commit()3.4 改with engine.connect() as conn: update_query goods.update().values(price10).where(goods.id1) conn.execute(update_query) conn.commit()ps:代码非完整代码直接粘贴会报错。缺乏if __name__ __main__保护建议加上。

相关新闻

最新新闻

PFC2D接触模型:从微观参数到宏观响应的核心机制与工程实践

PFC2D接触模型:从微观参数到宏观响应的核心机制与工程实践

1. 接触模型:PFC2D模拟的“灵魂”与“骨架”如果你刚开始接触PFC2D,可能会被它里面那些圆滚滚的颗粒和复杂的命令所吸引,觉得这就是个“画圆”和“推箱子”的游戏。但当你真正想用它去模拟一个实际问题,比如一堆砂土在荷载下的变形…

2026/8/12 21:23:22
汽车电子网络诊断入门:CANoe工具从零安装到仿真实践

汽车电子网络诊断入门:CANoe工具从零安装到仿真实践

1. 从零开始的汽车网络诊断之旅:为什么是CANoe?如果你刚接触汽车电子,或者从嵌入式开发、软件测试转行到汽车行业,第一次听到“CANoe”这个词,大概率会一头雾水。它听起来像条河,但实际上是汽车电子工程师、…

2026/8/12 21:23:22
SpringCloud微服务链路追踪:基于MDC与OpenFeign实现全局TraceId传递

SpringCloud微服务链路追踪:基于MDC与OpenFeign实现全局TraceId传递

1. 项目概述:为什么我们需要一个全局的TraceId?在微服务架构里,一个用户请求从网关进入,可能会像接力赛一样,依次调用A、B、C、D等多个服务。当某个环节响应变慢或者直接报错时,传统的单体应用日志排查方式…

2026/8/12 21:23:22
2026零基础整理B站学习视频总结避坑指南,跟着做就能直接上手

2026零基础整理B站学习视频总结避坑指南,跟着做就能直接上手

2026年零基础整理B站学习视频:录屏存音→转写提炼→复习自测想零基础整理B站学习视频,走「录屏存音 → 转写提炼 → 复习自测」这个流程就行,全程没什么复杂操作,跟着就能上手。这是个人整理了3个月B站学习内容、踩了好几个坑之后…

2026/8/12 21:23:22
Revit破解工具完整指南:如何安全获取和使用免费版本

Revit破解工具完整指南:如何安全获取和使用免费版本

Revit破解工具完整指南:如何安全获取和使用免费版本 【免费下载链接】Revit-crk revit-crack-download revit-free-download-full-version-with-crack revit-crack-2024 revit-keygen revit-serial-key revit-full-crack revit-cracked-version revit-license-key-…

2026/8/12 21:23:22
Unity ML-Agents环境配置全攻略:从零搭建强化学习训练环境

Unity ML-Agents环境配置全攻略:从零搭建强化学习训练环境

1. 项目概述:为什么Unity ML-Agents值得你投入时间?如果你对游戏开发感兴趣,同时又对人工智能、特别是强化学习(Reinforcement Learning)感到好奇,那么Unity ML-Agents这个工具包,绝对是你现阶段…

2026/8/12 21:18:21