教你怎么用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编写脚本使IE实现代理上网的教程
Apr 23 Python
使用Python生成XML的方法实例
Mar 21 Python
Python中标准模块importlib详解
Apr 16 Python
Python实现读取json文件到excel表
Nov 18 Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 Python
python DataFrame 取差集实例
Jan 30 Python
对python判断ip是否可达的实例详解
Jan 31 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
Dec 17 Python
Python中读取文件名中的数字的实例详解
Dec 25 Python
给numpy.array增加维度的超简单方法
Jun 02 Python
Django集成富文本编辑器summernote的实现步骤
Python基础知识学习之类的继承
May 31 #Python
Django实现聊天机器人
Python趣味挑战之教你用pygame画进度条
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 #Python
解决pytorch读取自制数据集出现过的问题
Python爬虫基础初探selenium
You might like
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
基于JavaScript实现类似于百度学术高级检索功能
2016/03/02 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
python实现划词翻译
2020/04/23 Python
python数据结构之二叉树的遍历实例
2014/04/29 Python
Python实现读取文件最后n行的方法
2017/02/23 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
python3.6.3转化为win-exe文件发布的方法
2018/10/31 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
python手机号前7位归属地爬虫代码实例
2020/03/31 Python
python 实现数据库中数据添加、查询与更新的示例代码
2020/12/07 Python
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
Why do we need Unit test
2013/01/03 面试题
php优化查询foreach代码实例讲解
2021/03/24 PHP
出国签证在职证明
2014/01/16 职场文书
酒店节能减排方案
2014/05/26 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
寒假致家长的一封信
2015/10/10 职场文书
入党心得体会
2019/06/20 职场文书
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python