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 相关文章推荐
python time模块用法实例详解
Sep 11 Python
利用Fn.py库在Python中进行函数式编程
Apr 22 Python
python消费kafka数据批量插入到es的方法
Dec 27 Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 Python
django使用admin站点上传图片的实例
Jul 28 Python
Python 50行爬虫抓取并处理图灵书目过程详解
Sep 20 Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
Jun 17 Python
Python 获取异常(Exception)信息的几种方法
Dec 29 Python
python SOCKET编程基础入门
Feb 27 Python
如何用python插入独创性声明
Mar 31 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
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
jQuery 使用个人心得
2009/02/26 Javascript
过虑特殊字符输入的js代码
2010/08/05 Javascript
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
JavaScript中的this引用(推荐)
2016/08/05 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
基于Proxy的小程序状态管理实现
2019/06/14 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
Django跨域请求CSRF的方法示例
2018/11/11 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
django中ImageField的使用详解
2020/12/21 Python
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
美国伴娘礼服商店:Evening Collective
2019/10/07 全球购物
c++工程师面试问题
2013/08/04 面试题
美术专业个人自我评价
2014/01/18 职场文书
母亲节感恩寄语
2014/02/21 职场文书
美食节策划方案
2014/05/26 职场文书
学校党员对照检查材料
2014/08/28 职场文书
见习报告格式要求
2014/11/04 职场文书
五年级作文之劳动作文
2019/11/12 职场文书
Redis过期数据是否会被立马删除
2022/07/23 Redis