教你怎么用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中的floor()方法
May 15 Python
scrapy spider的几种爬取方式实例代码
Jan 25 Python
python3获取当前文件的上一级目录实例
Apr 26 Python
Opencv+Python 色彩通道拆分及合并的示例
Dec 08 Python
对python以16进制打印字节数组的方法详解
Jan 24 Python
numpy下的flatten()函数用法详解
May 27 Python
Python Web框架之Django框架Model基础详解
Aug 16 Python
将matplotlib绘图嵌入pyqt的方法示例
Jan 08 Python
python程序如何进行保存
Jul 03 Python
numpy中生成随机数的几种常用函数(小结)
Aug 18 Python
python中函数返回多个结果的实例方法
Dec 16 Python
OpenCV-Python使用cv2实现傅里叶变换
Jun 09 Python
Django集成富文本编辑器summernote的实现步骤
Python基础知识学习之类的继承
May 31 #Python
Django实现聊天机器人
Python趣味挑战之教你用pygame画进度条
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 #Python
解决pytorch读取自制数据集出现过的问题
Python爬虫基础初探selenium
You might like
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
PHP+MYSQL实现读写分离简单实战
2017/03/13 PHP
JavaScript事件代理和委托详解
2016/04/08 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Python正则表达式教程之一:基础篇
2017/03/02 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
python numpy元素的区间查找方法
2018/11/14 Python
python 通过可变参数计算n个数的乘积方法
2019/06/13 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
Python图像处理之膨胀与腐蚀的操作
2021/02/07 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
珍珠鸟教学反思
2014/02/01 职场文书
招标授权委托书样本
2014/09/23 职场文书
党的群众路线教育实践活动个人对照检查材料(校长)
2014/11/05 职场文书
中小企业员工手册范本
2015/05/14 职场文书
药房管理制度范本
2015/08/06 职场文书
任命书格式范文
2015/09/22 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
四年级数学教学反思
2016/02/16 职场文书
合作合同协议书
2016/03/21 职场文书
python绘制箱型图
2021/04/27 Python
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript