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 解析XML python模块xml.dom解析xml实例代码
Feb 07 Python
Python编程判断一个正整数是否为素数的方法
Apr 14 Python
利用python打印出菱形、三角形以及矩形的方法实例
Aug 08 Python
Python基于正则表达式实现文件内容替换的方法
Aug 30 Python
Python实现统计给定字符串中重复模式最高子串功能示例
May 16 Python
python实现飞机大战微信小游戏
Mar 21 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 Python
Python玩转PDF的各种骚操作
May 06 Python
python实现图片九宫格分割
Mar 07 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
Jan 21 Python
Python关于__name__属性的含义和作用详解
Feb 19 Python
Python中使用threading.Event协调线程的运行详解
May 02 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
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
js滚动条多种样式,推荐
2007/02/05 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
js学习总结_基于数据类型检测的四种方式(必看)
2017/07/04 Javascript
微信JSAPI Ticket接口签名详解
2020/06/28 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
[01:00]DOTA2 store: Collection of Artisan's Wonders
2015/08/12 DOTA
Python单链表的简单实现方法
2014/09/23 Python
使用Python标准库中的wave模块绘制乐谱的简单教程
2015/03/30 Python
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
高中运动会入场词
2014/02/14 职场文书
《灰椋鸟》教学反思
2014/04/27 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
Oracle安装TNS_ADMIN环境变量设置参考
2021/11/01 Oracle