教你怎么用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 相关文章推荐
Windows下用py2exe将Python程序打包成exe程序的教程
Apr 08 Python
python删除过期文件的方法
May 29 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
Jul 23 Python
Python3中的真除和Floor除法用法分析
Mar 16 Python
Python黑魔法Descriptor描述符的实例解析
Jun 02 Python
python实现单向链表详解
Feb 08 Python
python 巧用正则寻找字符串中的特定字符的位置方法
May 02 Python
python实现字符串加密 生成唯一固定长度字符串
Mar 22 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
Jul 04 Python
python保存字典和读取字典的实例代码
Jul 07 Python
Python操作SQLite数据库过程解析
Sep 02 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
Django集成富文本编辑器summernote的实现步骤
Python基础知识学习之类的继承
May 31 #Python
Django实现聊天机器人
Python趣味挑战之教你用pygame画进度条
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 #Python
解决pytorch读取自制数据集出现过的问题
Python爬虫基础初探selenium
You might like
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
本地对象Array的原型扩展实现代码
2010/12/04 Javascript
jquery获得下拉框值的代码
2011/08/13 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
简述JS控制台的使用
2018/07/15 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
2019/04/28 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
对python 调用类属性的方法详解
2019/07/02 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
澳大利亚在线时尚精品店:Hello Molly
2018/02/26 全球购物
什么是三层交换,说说和路由的区别在那里
2014/09/01 面试题
捐款倡议书
2014/04/14 职场文书
小学清明节活动总结
2014/07/04 职场文书
老人与海读书笔记
2015/06/26 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
Python中time标准库的使用教程
2022/04/13 Python
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技