python连接mysql数据库并读取数据的实现


Posted in Python onSeptember 25, 2020

1、安装pymysql包

pip install pymysql

注:
MySQLdb只支持python2,pymysql支持python3

2、连接数据

import pymysql 
import pandas as pd
from pandas import DataFrame as df
conn = pymysql.Connect(
  host = 'IP地址', 
  port = 端口号, 
  user = '用户名', 
  passwd = '用户密码', 
  db = '数据库名称', 
  charset = 'utf8'
  )

注:

查看本机IP地址:cmd输入:ipconfig,IPv4 地址

pymysql.Connect参数中的 host 服务器地址,本机可用'localhost'

3、读取数据

(1)使用read_sql读取数据

sql = 'select * from testa'
data = pd.read_sql(sql, conn)

(2)使用cursor读取数据

sql = 'select * from testa'
cur = conn.cursor() 
try: # 使用异常处理,以防程序无法正常运行
  cur.execute(sql) 
  data = df(cur.fetchall(), columns = [col[0] for col in cur.description]) 
except Exception as e:
  conn.rollback() # 发生错误时回滚
  print('事务处理失败', e)
else:
  # conn.commit() # 事务提交
  print('事务处理成功', cur.rowcount)
cur.close()

注:

read_sql、cursor游标区别:

  • read_sql :只能执行查询数据
  • cursor游标 :可以执行查询、插入、更新、删除等操作

cur.execute(sql) :

  • 执行具体数据库的操作

cur.fetchone() :

  • 获取单条数据

cur.fetchmany(3) :

  • 获取前3条数据

cur.fetchall() :

  • 获取所有数据

查询结果中含字段名称:

# 法1:
 cur = conn.cursor(cursor = pymysql.cursors.DictCursor) # 设置成DictCursor,结果包含字段名称
 cur.execute(sql) 
 data = df(cur.fetchall()) 
 
 # 法2:
 cur = conn.cursor()
 cur.execute(sql) 
 data = df(cur.fetchall(),columns = [col[0] for col in cur.description])

conn.commit() :

  • 插入、更新、删除等操作需用该语句;查询、创建数据库、数据表则不需要

cur.rowcount :

  •  返回执行的操作条数

4、关闭数据库

conn.close()

到此这篇关于python连接mysql数据库并读取数据的实现的文章就介绍到这了,更多相关python连接mysql内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Python的setuptools框架下生成egg的教程
Apr 13 Python
深入浅出学习python装饰器
Sep 29 Python
python实战教程之自动扫雷
Jul 13 Python
python+ffmpeg批量去视频开头的方法
Jan 09 Python
pyqt5实现登录界面的模板
May 30 Python
python安装pil库方法及代码
Jun 25 Python
numpy np.newaxis 的实用分享
Nov 30 Python
python 消费 kafka 数据教程
Dec 21 Python
python如何判断IP地址合法性
Apr 05 Python
Python3爬虫里关于Splash负载均衡配置详解
Jul 10 Python
Python QT组件库qtwidgets的使用
Nov 02 Python
Python开发五子棋小游戏
Apr 28 Python
Python3如何使用tabulate打印数据
Sep 25 #Python
如何基于pandas读取csv后合并两个股票
Sep 25 #Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
Sep 25 #Python
python实现人性化显示金额数字实例详解
Sep 25 #Python
python 绘制正态曲线的示例
Sep 24 #Python
Python爬取网页信息的示例
Sep 24 #Python
详解用python -m http.server搭一个简易的本地局域网
Sep 24 #Python
You might like
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
最小化数据传输――在客户端存储数据
2006/10/09 PHP
php+oracle 分页类
2006/10/09 PHP
PHP has encountered an Access Violation
2007/01/15 PHP
PHP删除HTMl标签的实现代码
2013/06/30 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
2016/10/12 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
jquery 事件对象属性小结
2010/04/27 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
关于JavaScript中的关联数组分析
2013/04/09 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
js同比例缩放图片的小例子
2013/10/30 Javascript
jquery垂直公告滚动实现代码
2013/12/08 Javascript
js原型继承的两种方法对比介绍
2014/03/30 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
2016/05/05 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
js求数组中全部数字可拼接出的最大整数示例代码
2017/08/25 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
浅谈python函数之作用域(python3.5)
2017/10/27 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
会计出纳员的自我评价
2014/01/15 职场文书
先进德育工作者事迹材料
2014/01/24 职场文书
股东协议书范本
2014/04/14 职场文书
伊索寓言教学反思
2014/05/01 职场文书
离婚协议书范文2016
2016/03/18 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
使用Ajax实现无刷新上传文件
2022/04/12 Javascript
python实现手机推送 代码也就10行左右
2022/04/12 Python
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技