当前位置: 首页 > news >正文

关于sqlalchemy的使用

关于sqlalchemy的使用

  • 说明
  • 一、sqlachemy总体使用思路
  • 二、安装与创建库、连结库
  • 三、创建表、增加数据
  • 四、查询记录
  • 五、更新或删除
  • 六、关联表定义

说明

  1. 本教程所需软件及库python3.10、sqlalchemy
  2. 安装与创建库、连结库
  3. 创建表、增加数据
  4. 查询记录

一、sqlachemy总体使用思路

  1. 在创建或连结后会返回engine(可以参考第二节安装与创建库、连结库)
  2. 在创建表后会返回一个表名(可以参考第三节创建表、增加数据)
  3. 使用时表名.方法.属性
  4. 方法有insert,select,update,delecte
  5. 与数据对接时,conn = engine.connect()—conn.execut(表方法返回的值)
  6. 当数据库的数据发生改变时,要提交(conn.commit())
  7. 查询时,要注意条件,有两种方法where() | or_ | and_

二、安装与创建库、连结库

  1. 安装库
pip install sqlalchemy
#查看版本
sqlalchemy.__vetrsion__
  1. 创建库或连结库
#连结或创建sqlite3
from sqlalchemy import create_engine
engine = create_engine(`sqlite:///db_path.db`,echo=True)
conn = engine.connect()
#连结或创建mysql
from sqlalchemy import create_engine
engine = create_engine(`mysql://user:pwd@localhoast/库名`,echo=True)
conn = engine.connect()

注:create_engine如果已经存在就连结,如果不存在就创建。

  1. 在sqlachemy执行sql语句
import sqlachemy
query = sqlachemy.text("select * from 表名")#sql语句
engine = sqlachemy.create_engine(`sqlite:///db_path.db`,echo=True)
conn = engine.connect()
result_set = conn.execute(query)
print(result_set.all())
conn.close()
engine.dispose()

注:以下代码engine代表创建或检查数据库,conn代表连结数据库。

三、创建表、增加数据

  1. 创建表
    创建表要用到sqlalchemy的三个库MetaData、Table、Column及类型代码
from sqlachemy import MetaData,Table,Column
meta = MetaData()
#Meta定义好的字段属性存在这,所以第二个字段就要传它
var = Table(
'表名',meta,
Clolumn('字段名',sqlachemy.类型,primary_key=True),
.......
)
meta.create_all(engine)#创建表

如果表已经存在了,就不会创建,如果不存在就创建。
2. sqlachemy字段类型

名称字段英文用法说明
整形IntegerInteger存整数
小数存小数
字符StringString(字符个数)存字符
日期DateDate存年月日

注:主键primary_key=True,unique=True唯一,unllable=True不能为空。

  1. 增加数据(insert)
    3.1 插入一条数据
var = 表名.insert().values(字段名=值,......)
with engine.connect() as conn:
	conn.execute(var)
	conn.commit()

1、连结conn以后执行数据库操作要用conn.execut(sqlachemy语句)
2、数据库数据有变要提交事务,conn.commit()
3、var = 表名.insert().values(字段名=值,…)是新增数据的sqlachemy语句
4、 自增长是插一次,它就增加一次,它不管你是否成功
3.2 插入多条数据

var = 表名.insert()
with engine.connect() as conn:
	conn.execute(var,[
		{'字段名':value,.......},
		{'字段名':value,.......},
		........
		])
	conn.commit()

这个要用列表,并且列表里放字典,key是字段名,value是对应的值

四、查询记录

  1. sql查询语句
select * from 表名
  1. 函数表达式
表名.select()
  1. 结果获取
结果.fetchall()#获取所有数据
结果.fetchone()#获取第一条数据
  1. 条件查询
表名.select().where(表名.c.字段名条件)
#一次只能有一个条件
#如果多个条件查询时,在后面加.where(表名.c.字段名条件)
  1. and_(与)、or_(或)
from sqlachemy.sql import and_,or_
表名.select().where(or_(条件,条件.....) | and_(条件,条件.....))
# 要在where中使用and_,or_
# and_,or_可以相互嵌套

五、更新或删除

  1. 更新
表名.update().where(条件).values(字段名=value)
#查询结果后再更新值,一个values可以更新多条记录或所有记录,取决于查询的结果
  1. 删除
表名.delete().where(条件)
#查询结果后再删除,可以删除多条记录或所有记录,取决于查询的结果

六、关联表定义

相关文章:

  • 基于hive的电信离线用户的行为分析系统
  • 第9章:数据导入导出与设置
  • C语言共用体(union)
  • 【DeepSeek】5分钟快速实现本地化部署教程
  • SQL分几种
  • C语言——自定义类型:结构体
  • 实际springboot项目中如何注意jvm调优
  • 引领变革!北京蜂巢世纪科技有限公司荣获“GAS消费电子科创奖-产品创新奖”!
  • SQL PLUS与Oracle数据库的交互
  • 设计模式 - 工厂模式 精准梳理精准记忆
  • Android12 添加开机铃声
  • 【NL2SQL(text2sql) 到底准不准】智能BI中生成sql模块的评测数据构造 + 评测办法
  • 在 ASP.NET Core 中启用 Brotli 和 Gzip 响应压缩
  • SpringBoot的启动流程是怎样的?
  • 全志A133 android10 mipi屏幕调试
  • Git - 补充工作中常用的一些命令
  • 字节青训营后端方向的个人总结(2025年3月4日)
  • SQL Server查询计划操作符(7.3)——查询计划相关操作符(9)
  • 构建私有化AI知识库:基于CentOS的Ollama + DeepSeek-R1 +ragflow 整合部署教程
  • 硬通货用Deekseek做一个Vue.js组件开发的教程
  • 北京网站建设 优化/六种常见的网站类型
  • 日本网站开发前端/谷歌chrome官网
  • 大型门户网站有哪些/系统优化是什么意思
  • 网站logo的作用/seo高级优化技巧
  • 在线做公章网站/青岛专业网站制作
  • ps个人主页设计/百度seo优化软件