Python实现连接MySql数据库及增删改查操作详解


Posted in Python onApril 16, 2019

本文实例讲述了Python实现连接MySql数据库及增删改查操作。分享给大家供大家参考,具体如下:

在本文中介绍 Python3 使用PyMySQL连接数据库,并实现简单的增删改查。(注意是python3)

1、安装PyMySQL

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。

① 使用pip命令安装

pip install PyMySQL

Python实现连接MySql数据库及增删改查操作详解

② 如果你的系统不支持 pip 命令,可以使用以下git方式安装

//使用git下载安装包
$ git clone https://github.com/PyMySQL/PyMySQL
$ cd PyMySQL/
$ python3 setup.py install

2、Python连接MySql数据库

连接数据库前,请先确认以下事项:

Ⅰ 在你的机子上已经安装了 Python MySQLdb 模块。
Ⅱ 您已经创建了数据库 test
Ⅲ 连接数据库test使用的用户名为 root,密码为 root,你可以可以自己设定或者直接使用root用户名及其密码。

# *===================================*
# * Created by Zhihua_w.
# * Author: Wei ZhiHua
# * Date: 2017/1/10 0003
# * Time: 下午 2:28
# * Project: PYTHON STUDY
# * Power: DATABASE
# *===================================*
import pymysql
# 打开数据库连接(ip/数据库用户名/登录密码/数据库名)
db = pymysql.connect("localhost", "root", "root", "test")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print("Database version : %s " % data)
# 关闭数据库连接
db.close()

3、Python操作MySql数据库实现增删改查

① 数据库插入操作

# *===================================*
# * Created by Zhihua_w.
# * Author: Wei ZhiHua
# * Date: 2017/1/10 0004
# * Time: 下午 2:32
# * Project: PYTHON STUDY
# * Power: DATABASE
# *===================================*
import pymysql
# 打开数据库连接(ip/数据库用户名/登录密码/数据库名)
db = pymysql.connect("localhost", "root", "root", "test")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 插入语句
sql = """INSERT INTO user(name)
     VALUES ('Mac')"""
try:
  # 执行sql语句
  cursor.execute(sql)
  # 提交到数据库执行
  db.commit()
except:
  # 如果发生错误则回滚
  db.rollback()
# 关闭数据库连接
db.close()

② 数据库查询

# *===================================*
# * Created by Zhihua_w.
# * Author: Wei ZhiHua
# * Date: 2017/1/10 0005
# * Time: 下午 2:39
# * Project: PYTHON STUDY
# * Power: DATABASE
# *===================================*
import pymysql
# 打开数据库连接(ip/数据库用户名/登录密码/数据库名)
db = pymysql.connect("localhost", "root", "root", "test")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句
sql = "SELECT * FROM user"
try:
  # 执行SQL语句
  cursor.execute(sql)
  # 获取所有记录列表
  results = cursor.fetchall()
  for row in results:
    id = row[0]
    name = row[1]
    # 打印结果
    print("id=%s,name=%s" % \
    (id, name))
except:
  print("Error: unable to fecth data")
# 关闭数据库连接
db.close()

③ 数据库更新

# *===================================*
# * Created by Zhihua_w.
# * Author: Wei ZhiHua
# * Date: 2017/1/10 0005
# * Time: 下午 2:39
# * Project: PYTHON STUDY
# * Power: DATABASE
# *===================================*
import pymysql
# 打开数据库连接(ip/数据库用户名/登录密码/数据库名)
db = pymysql.connect("localhost", "root", "root", "test")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 更新语句
sql = "UPDATE user SET name = 'Bob' WHERE id = 1"
try:
  # 执行SQL语句
  cursor.execute(sql)
  # 提交到数据库执行
  db.commit()
except:
  # 发生错误时回滚
  db.rollback()
# 关闭数据库连接
db.close()

④ 数据库删除

# *===================================*
# * Created by Zhihua_w.
# * Author: Wei ZhiHua
# * Date: 2017/1/10 0006
# * Time: 下午 2:49
# * Project: PYTHON STUDY
# * Power: DATABASE
# *===================================*
import pymysql
# 打开数据库连接(ip/数据库用户名/登录密码/数据库名)
db = pymysql.connect("localhost", "root", "root", "test")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 删除语句
sql = "DELETE FROM user WHERE id = 1"
try:
  # 执行SQL语句
  cursor.execute(sql)
  # 提交修改
  db.commit()
except:
  # 发生错误时回滚
  db.rollback()
# 关闭数据库连接
db.close()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Windows系统配置python脚本开机启动的3种方法分享
Mar 10 Python
在Django中进行用户注册和邮箱验证的方法
May 09 Python
浅谈python中的实例方法、类方法和静态方法
Feb 17 Python
python openpyxl使用方法详解
Jul 18 Python
使用python批量修改文件名的方法(视频合并时)
Mar 24 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
基于Python的OCR实现示例
Apr 03 Python
keras输出预测值和真实值方式
Jun 27 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
Oct 29 Python
python 通过 pybind11 使用Eigen加速代码的步骤
Dec 07 Python
python numpy中setdiff1d的用法说明
Apr 22 Python
Python Django / Flask如何使用Elasticsearch
Apr 19 Python
Python3.6实现带有简单界面的有道翻译小程序
Apr 16 #Python
python实现扫描局域网指定网段ip的方法
Apr 16 #Python
python实现扫描ip地址的小程序
Apr 16 #Python
使用Python制作简单的小程序IP查看器功能
Apr 16 #Python
Python使用POP3和SMTP协议收发邮件的示例代码
Apr 16 #Python
Python这样操作能存储100多万行的xlsx文件
Apr 16 #Python
Python字符串内置函数功能与用法总结
Apr 16 #Python
You might like
什么是短波收听SWL
2021/03/01 无线电
基于PHP静态类的原罪详解
2013/05/06 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
jQuery绑定事件on()与弹窗的简要概述
2016/04/27 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
VueJs组件prop验证简单介绍
2017/09/12 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
python编写朴素贝叶斯用于文本分类
2017/12/21 Python
python代码实现逻辑回归logistic原理
2019/08/07 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
python 用struct模块解决黏包问题
2020/11/07 Python
python 使用cycle构造无限循环迭代器
2020/12/02 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
linux面试题参考答案(1)
2016/01/22 面试题
个人简历自我鉴定
2013/10/11 职场文书
《猴子种树》教学反思
2014/02/14 职场文书
幼儿园大班家长评语
2014/04/17 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
学生党员检讨书范文
2014/12/27 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
浅谈spring boot使用thymeleaf版本的问题
2021/08/04 Java/Android
python的html标准库
2022/04/29 Python