目录

这里使用的数据库是关系型数据库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数据库的三种方法,实现增删改查相关推荐

  1. Python操作MySQL数据库的三种方法

    1. MySQLdb 的使用 (1) 什么是MySQLdb?   MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 M ...

  2. mysql 安装在路由器_MySQL如何安装?安装MySQL数据库的三种方法

    MySQL如何安装?安装MySQL数据库的三种方法 目录 安装MySQL的方式常见的有三种: rpm包形式 通用二进制形式 源码编译 1,rpm包形式 (1) 操作系统发行商提供的 (2) MySQL ...

  3. HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good

    Spring+Hibernate两种方法实现增删改查 首先,定义一个Customer的bean类,设置好Customer.hbm.xml文件.再定义好一个Dao接口.准备好一个jdbc.propert ...

  4. python连接数据库的技术_Python操作MySQL数据库的三种方法

    (1) 什么是MySQLdb? MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. ...

  5. 【推荐收藏 】Python写入MySQL数据库的三种方式,最后一种方式方便又高效

    大家好,Python 读取数据自动写入 MySQL 数据库,这个需求在工作中是非常普遍的,主要涉及到 python 操作数据库,读写更新等,数据库可能是 mongodb. es,他们的处理思路都是相似 ...

  6. C语言链接mysql数据库实现简易的学生信息增删改查

    添加学生信息: 查看学生信息: 学生信息删除: 学生信息更新: #define _CRT_SECURE_NO_DEPRECATE  /*   if (!mysql_real_connect(& ...

  7. 将Excel数据导入mysql数据库的几种方法

    将Excel数据导入mysql数据库的几种方法 "我的面试感悟"有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结 ...

  8. python下载方法-python实现下载文件的三种方法_python

    本篇文章主要介绍了python实现下载文件的三种方法,最常用的方法就是通过Http利用urllib或者urllib2模块还有requests,有兴趣的可以了解一下. Python开发中时长遇到要下载文 ...

  9. python下载的文件放在哪里的-python实现下载文件的三种方法

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...

最新文章

  1. Hadoop五个进程的作用和联系
  2. 云原生系列「四」我为啥不看好ServiceMesh?
  3. Android开发之RecyclerView之刷新数据notifyDataSetChanged失败的问题
  4. 1006 换个格式输出整数 (15 分)
  5. Java Random nextInt()方法与示例
  6. Algorithm:位运算的这些小技巧你知道吗?
  7. 20160130001 冯仑风马牛
  8. 万年历Java有界面_java万年历界面版
  9. 控制Tello无人机扫描条形码
  10. java之调用七牛云接口完成视频加水印
  11. Vagrant安装和使用
  12. 1034-乘积小于 K 的子数组
  13. io.fabric8.docker-maven-plugin插件使用
  14. C# vb .net实现消除红眼效果
  15. 智能书包方案——智能书包重力测量模块CSM92F32
  16. java集合听课笔记之hashMap的底层数据结构
  17. PostgreSQL-Vacuum
  18. 关于论坛发帖图片不显示之解决策略
  19. 织梦dede:arclist关键词标签keyword动态获取变量
  20. 【转】Windows系统中简单卷、带区卷、跨区卷、镜像卷的测试对比

热门文章

  1. 98%的人没解出的德国面试逻辑题(离散数学篇)!?
  2. LeetCode Implement Trie(Prefix Tree)
  3. SylixOS 系统初探
  4. NPOI Excel 导出学习 一 (基础导出)
  5. python 2.7 简单模拟登陆网站
  6. uniGUI试用笔记(十一)
  7. 44-当日交易总结。(2014.12.31)
  8. Python Socket 编程——聊天室示例程序
  9. Coding 初级教程(二)——上传已有项目
  10. 求n个数中的最大或最小k个数