教你怎么用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 代码效率的方法
Jul 03 Python
Python可跨平台实现获取按键的方法
Mar 05 Python
python中常用的九种预处理方法分享
Sep 11 Python
CentOS中升级Python版本的方法详解
Jul 10 Python
python在ubuntu中的几种安装方法(小结)
Dec 08 Python
python中的tcp示例详解
Dec 09 Python
Opencv实现抠图背景图替换功能
May 21 Python
python rsa实现数据加密和解密、签名加密和验签功能
Sep 18 Python
Python大数据之从网页上爬取数据的方法详解
Nov 16 Python
pytorch加载自定义网络权重的实现
Jan 07 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
Apr 29 Python
python爬虫scrapy图书分类实例讲解
Nov 23 Python
Django集成富文本编辑器summernote的实现步骤
Python基础知识学习之类的继承
May 31 #Python
Django实现聊天机器人
Python趣味挑战之教你用pygame画进度条
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 #Python
解决pytorch读取自制数据集出现过的问题
Python爬虫基础初探selenium
You might like
PHP array_push 数组函数
2009/12/26 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
php之XML转数组函数的详解
2013/06/07 PHP
YII实现分页的方法
2014/07/09 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
js常用代码段收集
2011/10/28 Javascript
jquery解决客户端跨域访问问题
2015/01/06 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
Python3.2中Print函数用法实例详解
2015/05/19 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
Python 列表反转显示的四种方法
2020/11/16 Python
python实现代码审查自动回复消息
2021/02/01 Python
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
如何用SQL语句进行模糊查找
2015/09/25 面试题
英文版餐饮业求职信
2013/10/18 职场文书
经典婚礼主持词
2014/03/13 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
一份文言文检讨书
2014/09/13 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
2014年转正工作总结
2014/11/08 职场文书
起诉意见书范文
2015/05/19 职场文书
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python
Python 文字识别
2022/05/11 Python
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis