Python操纵Mysql数据库的三种方法,实现增删改查
目录
这里使用的数据库是关系型数据库Mysql
一、首先,需要安装两个库
二、3种实现增删改查的方法
1. 使用原生语句进行增删改查
2. 使用表结构进行增删改查
3. 使用集成ORM类操纵数据库,Flask会用到,非常重要,必须掌握
这里使用的数据库是关系型数据库Mysql
一、首先,需要安装两个库
pip install sqlalchemy pip install pymysql
二、3种实现增删改查的方法
1. 使用原生语句进行增删改查
from sqlalchemy import create_engine # 创建引擎
from sqlalchemy import MetaData # 创建属性
from sqlalchemy import Table # 创建表
from sqlalchemy import Column,String,Integer # 创建表字段# 创建引擎
engine=create_engine(# //用户名:密码@IP地址:端口/数据库"mysql+pymysql://root:root@127.0.0.1:3306/pytest",pool_size=10, # 连接池大小# 超过连接池大小外最多可以创建的连接,也就是一共可以创建15个连接max_overflow=5,echo=True, # 调试信息展示
)
# 取得元数据,介绍数据库
metadata=MetaData()
# 创建用户表
user=Table('user',metadata, # 表名为user,参数# 列名,类型,是否为主键,自增长Column('id',Integer,primary_key=True,autoincrement=True),Column('name',String(20))
)
metadata.create_all(engine) # 创建数据表#方法一:原生语句增删改查
# 插入,必须用双引号
engine.execute("insert into user (name) values ('KantLee')")
# 更新数据
engine.execute("update user set id=5,name='python' where id=1")
# 查询数据
result=engine.execute("select * from user") # 迭代器
for i in result:print(i) # 元组
# 删除数据
engine.execute("delete from user where id=5")
2. 使用表结构进行增删改查
from sqlalchemy import create_engine # 创建引擎
from sqlalchemy import MetaData # 创建属性
from sqlalchemy import Table # 创建表
from sqlalchemy import Column,String,Integer # 创建表字段
from sqlalchemy import select # 创建引擎
engine=create_engine(# //用户名:密码@IP地址:端口/数据库"mysql+pymysql://root:root@127.0.0.1:3306/pytest",pool_size=10, # 连接池大小# 超过连接池大小外最多可以创建的连接,也就是一共可以创建15个连接max_overflow=5,echo=True, # 调试信息展示
)
# 取得元数据,介绍数据库
metadata=MetaData()
# 创建用户表
user=Table('user',metadata, # 表名为user,参数# 列名,类型,是否为主键,自增长Column('id',Integer,primary_key=True,autoincrement=True),Column('name',String(20))
)
metadata.create_all(engine) # 创建数据表# 方法二:表结构的增删改查
connect=engine.connect() #获取连接
# 增加数据
connect.execute(user.insert(),{'name':'python'})
# 修改数据,c必须要加
connect.execute(user.update().where(user.c.id==6).values(name='C++'))
# 查询数据
res=connect.execute((select([user.c.name,user.c.id]))) # 迭代器
print(res.fetchall()) # 列表
# 删除数据
connect.execute(user.delete().where(user.c.id==6))
connect.close()
3. 使用集成ORM类操纵数据库,Flask会用到,非常重要,必须掌握
from sqlalchemy import create_engine
from sqlalchemy import Column,String,Integer
from sqlalchemy.orm import sessionmaker # 创建连接
from sqlalchemy.ext.declarative import declarative_base # 创建表的基类# 创建引擎
engine=create_engine(# //用户名:密码@IP地址:端口/数据库"mysql+pymysql://root:root@127.0.0.1:3306/pytest",pool_size=10, # 连接池大小# 超过连接池大小外最多可以创建的连接,也就是一共可以创建15个连接max_overflow=5,echo=True, # 调试信息展示
)Base=declarative_base()
# 每张表都是一个类
# 创建host表
class Host(Base):__tablename__='hosts' # 表名id=Column(Integer,primary_key=True,autoincrement=True)hostname=Column(String(64),unique=True,nullable=False)ip_addr=Column(String(126),unique=True,nullable=False)port=Column(Integer,default=8080)if __name__ == '__main__':Base.metadata.create_all(engine) # 创建表Session=sessionmaker(bind=engine)sess=Session() # 创建连接# 添加数据h=Host(hostname='test1',ip_addr='127.0.0.1')h2=Host(hostname='test2',ip_addr='192.168.1.1',port=8080)h3=Host(hostname='test3',ip_addr='192.168.1.2',port=8081)# 添加数据sess.add(h) # 添加一条数据sess.add_all([h2,h3]) # 添加多条数据# 删除数据sess.query(Host).filter(Host.id>1).delete()# 更新数据sess.query(Host).filter(Host.id==1).update({'port':3309})# 查询数据# res=sess.query(Host).filter(Host.id==1).all()# 查询数据的第二种写法res=sess.query(Host).filter_by(id=1).all()for r in res:print(r.hostname,r.port)sess.commit() # 提交
Python操纵Mysql数据库的三种方法,实现增删改查相关推荐
- Python操作MySQL数据库的三种方法
1. MySQLdb 的使用 (1) 什么是MySQLdb? MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 M ...
- mysql 安装在路由器_MySQL如何安装?安装MySQL数据库的三种方法
MySQL如何安装?安装MySQL数据库的三种方法 目录 安装MySQL的方式常见的有三种: rpm包形式 通用二进制形式 源码编译 1,rpm包形式 (1) 操作系统发行商提供的 (2) MySQL ...
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good
Spring+Hibernate两种方法实现增删改查 首先,定义一个Customer的bean类,设置好Customer.hbm.xml文件.再定义好一个Dao接口.准备好一个jdbc.propert ...
- python连接数据库的技术_Python操作MySQL数据库的三种方法
(1) 什么是MySQLdb? MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. ...
- 【推荐收藏 】Python写入MySQL数据库的三种方式,最后一种方式方便又高效
大家好,Python 读取数据自动写入 MySQL 数据库,这个需求在工作中是非常普遍的,主要涉及到 python 操作数据库,读写更新等,数据库可能是 mongodb. es,他们的处理思路都是相似 ...
- C语言链接mysql数据库实现简易的学生信息增删改查
添加学生信息: 查看学生信息: 学生信息删除: 学生信息更新: #define _CRT_SECURE_NO_DEPRECATE /* if (!mysql_real_connect(& ...
- 将Excel数据导入mysql数据库的几种方法
将Excel数据导入mysql数据库的几种方法 "我的面试感悟"有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结 ...
- python下载方法-python实现下载文件的三种方法_python
本篇文章主要介绍了python实现下载文件的三种方法,最常用的方法就是通过Http利用urllib或者urllib2模块还有requests,有兴趣的可以了解一下. Python开发中时长遇到要下载文 ...
- python下载的文件放在哪里的-python实现下载文件的三种方法
Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...
最新文章
- Hadoop五个进程的作用和联系
- 云原生系列「四」我为啥不看好ServiceMesh?
- Android开发之RecyclerView之刷新数据notifyDataSetChanged失败的问题
- 1006 换个格式输出整数 (15 分)
- Java Random nextInt()方法与示例
- Algorithm:位运算的这些小技巧你知道吗?
- 20160130001 冯仑风马牛
- 万年历Java有界面_java万年历界面版
- 控制Tello无人机扫描条形码
- java之调用七牛云接口完成视频加水印
- Vagrant安装和使用
- 1034-乘积小于 K 的子数组
- io.fabric8.docker-maven-plugin插件使用
- C# vb .net实现消除红眼效果
- 智能书包方案——智能书包重力测量模块CSM92F32
- java集合听课笔记之hashMap的底层数据结构
- PostgreSQL-Vacuum
- 关于论坛发帖图片不显示之解决策略
- 织梦dede:arclist关键词标签keyword动态获取变量
- 【转】Windows系统中简单卷、带区卷、跨区卷、镜像卷的测试对比