教你怎么用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进阶_浅谈面向对象进阶
Aug 17 Python
利用python编写一个图片主色转换的脚本
Dec 07 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 Python
PyQt5每天必学之事件与信号
Apr 20 Python
Python对切片命名的实现方法
Oct 16 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
Jun 21 Python
Python 实现Serial 与STM32J进行串口通讯
Dec 18 Python
python使用pyecharts库画地图数据可视化的实现
Mar 25 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 Python
jupyter 导入csv文件方式
Apr 21 Python
python 如何调用 dubbo 接口
Sep 24 Python
Django实现在线无水印抖音视频下载(附源码及地址)
May 06 Python
Django集成富文本编辑器summernote的实现步骤
Python基础知识学习之类的继承
May 31 #Python
Django实现聊天机器人
Python趣味挑战之教你用pygame画进度条
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 #Python
解决pytorch读取自制数据集出现过的问题
Python爬虫基础初探selenium
You might like
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
php表单敏感字符过滤类
2014/12/08 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
js 点击按钮弹出另一页,选择值后,返回到当前页
2010/05/26 Javascript
Jquery选择子控件"大于号"和" "区别介绍及使用示例
2013/06/25 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
2016/08/03 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
2017/08/04 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
JavaScript实现鼠标移入随机变换颜色
2020/11/24 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
彻底理解Python中的yield关键字
2019/04/01 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
Python爬虫UA伪装爬取的实例讲解
2021/02/19 Python
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
详解HTML5中表单验证的8种方法介绍
2016/12/19 HTML / CSS
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
解释一下钝化(Swap out)
2016/12/26 面试题
迅雷Cued工作心得体会
2014/01/27 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
班主任班级寄语大全
2014/04/04 职场文书
软环境建设心得体会
2014/09/09 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
2014年药房工作总结
2014/11/22 职场文书
颐和园的导游词
2015/01/30 职场文书
小学德育工作总结2015
2015/05/12 职场文书
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python