教你怎么用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 相关文章推荐
Python2.7下安装Scrapy框架步骤教程
Dec 22 Python
Python:Scrapy框架中Item Pipeline组件使用详解
Dec 27 Python
Windows 7下Python Web环境搭建图文教程
Mar 20 Python
用python处理图片实现图像中的像素访问
May 04 Python
Python实现的特征提取操作示例
Dec 03 Python
调试Django时打印SQL语句的日志代码实例
Sep 12 Python
python计算n的阶乘的方法代码
Oct 25 Python
python 有效的括号的实现代码示例
Nov 11 Python
使用TFRecord存取多个数据案例
Feb 17 Python
python3.7.3版本和django2.2.3版本是否可以兼容
Sep 01 Python
Python+logging输出到屏幕将log日志写入文件
Nov 11 Python
Python如何批量生成和调用变量
Nov 21 Python
Django集成富文本编辑器summernote的实现步骤
Python基础知识学习之类的继承
May 31 #Python
Django实现聊天机器人
Python趣味挑战之教你用pygame画进度条
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 #Python
解决pytorch读取自制数据集出现过的问题
Python爬虫基础初探selenium
You might like
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
jquery 日期控件datepicker属性详细解析
2013/11/08 Javascript
jQuery常用数据处理方法小结
2015/02/20 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
jquery实现数字输入框
2017/02/22 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
详解 vue better-scroll滚动插件排坑
2018/02/08 Javascript
JS实现的视频弹幕效果示例
2018/08/17 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
js数组中去除重复值的几种方法
2020/08/03 Javascript
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
python中实现php的var_dump函数功能
2015/01/21 Python
python开发之thread线程基础实例入门
2015/11/11 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
python爬取指定微信公众号文章
2018/12/20 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
教育孩子心得体会
2014/01/01 职场文书
服装采购员岗位职责
2014/03/15 职场文书
李培根演讲稿
2014/05/22 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
技术负责人岗位职责
2015/02/10 职场文书
Python中request的基本使用解决乱码问题
2022/04/12 Python