教你怎么用Python操作MySql数据库


Posted in Python onMay 31, 2021

一、关于Python操作数据库的概述

Python所有的数据库接口程序都在一定程度上遵守 Python DB-API 规范。

DB-API定义了一系列必须的对象和数据库存取方式,以便为各种底层数据库系统和多种多样的数据库接口程序提供一致的访问接口。由于DB-API 为不同的数据库提供了一致的访问接口, 在不同的数据库之间移植代码成为一件轻松的事情。

在Python中如果要连接数据库,不管是MySQL、SQL Server、PostgreSQL亦或是SQLite,使用时都是采用游标的方式。

二、一般操作流程

教你怎么用Python操作MySql数据库

三、安装mysql的操作库

$ pip3 install PyMySQL

四、基本操作

创建连接

import pymysql

# 创建连接方式1
db = pymysql.connect(host='localhost', 
                     user='root', password='root', db='test', port=3306)
# 创建连接方式2
db = pymysql.connect(dsn='localhost:test', user='root', password='root')

close()

关闭此connect对象, 关闭后无法再进行操作,除非再次创建连接。

cursor()

创建游标对象。一个游标允许用户执行数据库命令和得到查询结果。一个 Python DB-API 游标对象总是扮演游标的角色, 无论数据库是否真正支持游标。也就说,数据库接口程序必须实现游标对象。创建游标对象之后, 你就可以执行查询或其它命令(或者多个查询和多个命令), 也可以从结果集中取出一条或多条记录。

commit()

提交当前事务,执行游标对象的所有更新操作。

rollback()

取消当前事务,回滚当前游标的所有操作。

游标操作

cursor = db.cursor()
  • close():关闭此游标对象
  • fetchone():得到结果集的下一行
  • fetchall():得到结果集中剩下的所有行
  • excute(sql[, args]):执行一个数据库查询或命令
  • callproc(func[,args]): 调用一个存储过程

查询操作

import pymysql

db = pymysql.connect(host='localhost', user='root', password='root', db='test')

cursor = db.cursor()
sql = '''select * from t_account'''
try:
    cursor.execute(sql)
    # 方式1读取结果集
    rows = cursor.fetchall()
    for row in rows:
        print(row)    
    # 方式2读取结果集
    for i in range(cursor.rowcount):
        result = cursor.fetchone()
        print(result)
except Exception as e:
    raise e
finally:
    cursor.close()

db.close()

添加操作

import pymysql

db = pymysql.connect(host='localhost', user='root', password='root', db='test')

cursor = db.cursor()
sql = '''insert into t_account values(default,'zhangsan','z',100,'张三')'''
try:
    print(cursor.execute(sql))
    db.commit()
except:
    db.rollback()
finally:
    cursor.close()

db.close()

修改操作

import pymysql

db = pymysql.connect(host='localhost', user='root', password='root', db='test')

cursor = db.cursor()
sql = '''update t_account set realname = '李四' where id = '5' '''
try:
    print(cursor.execute(sql))
    db.commit()
except:
    db.rollback()
finally:
    cursor.close()

db.close()

删除操作

import pymysql

db = pymysql.connect(host='localhost', user='root', password='root', db='test')

cursor = db.cursor()
sql = '''delete from t_account where id = '5' '''
try:
    print(cursor.execute(sql))
    db.commit()
except:
    db.rollback()
finally:
    cursor.close()

db.close()

调用存储过程

cursor.callproc("存储过程名称")
for result in cursor.fetchall():
    print(result)

到此这篇关于教你怎么用Python操作MySql数据库的文章就介绍到这了,更多相关Python操作MySql内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中用max()方法求最大值的介绍
May 15 Python
python爬虫的工作原理
Mar 05 Python
Python-copy()与deepcopy()区别详解
Jul 12 Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 Python
Tensorflow轻松实现XOR运算的方式
Feb 03 Python
git查看、创建、删除、本地、远程分支方法详解
Feb 18 Python
django使用JWT保存用户登录信息
Apr 22 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
Jun 02 Python
使用Python项目生成所有依赖包的清单方式
Jul 13 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
Nov 18 Python
python中if嵌套命令实例讲解
Feb 25 Python
Django集成富文本编辑器summernote的实现步骤
Python基础知识学习之类的继承
May 31 #Python
Django实现聊天机器人
Python趣味挑战之教你用pygame画进度条
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 #Python
解决pytorch读取自制数据集出现过的问题
Python爬虫基础初探selenium
You might like
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
2009/02/04 Javascript
关于Mozilla浏览器不支持innerText的解决办法
2011/01/01 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
使用Raygun对Node.js应用进行错误处理的方法
2015/06/23 Javascript
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
2016/07/27 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
使用Angular material主题定义自己的组件库的配色体系
2019/09/04 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
Vue请求java服务端并返回数据代码实例
2019/11/28 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
2020/11/18 Vue.js
python杀死一个线程的方法
2015/09/06 Python
Python 内置函数complex详解
2016/10/23 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
Flask之flask-session的具体使用
2018/07/26 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
祖国在我心中的演讲稿
2014/05/04 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
火烧圆明园观后感
2015/06/03 职场文书
办公室管理规章制度
2015/08/04 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
利用python做表格数据处理
2021/04/13 Python
CSS 伪元素::marker详解
2021/06/26 HTML / CSS
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers