教你怎么用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使用MySQLdb for Python操作数据库教程
Oct 11 Python
django基础之数据库操作方法(详解)
May 24 Python
浅谈Python peewee 使用经验
Oct 20 Python
python机器学习理论与实战(五)支持向量机
Jan 19 Python
python安装教程
Feb 28 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
Aug 12 Python
Python模块的制作方法实例分析
Dec 21 Python
在 Python 中接管键盘中断信号的实现方法
Feb 04 Python
Python使用进程Process模块管理资源
Mar 05 Python
python中Pexpect的工作流程实例讲解
Mar 02 Python
Django集成富文本编辑器summernote的实现步骤
Python基础知识学习之类的继承
May 31 #Python
Django实现聊天机器人
Python趣味挑战之教你用pygame画进度条
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 #Python
解决pytorch读取自制数据集出现过的问题
Python爬虫基础初探selenium
You might like
谈谈新手如何学习PHP 默默经典版本
2009/08/04 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
PHP递归调用数组值并用其执行指定函数的方法
2015/04/01 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
layui表格实现代码
2017/05/20 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
原生JavaScript实现弹幕组件的示例代码
2020/10/12 Javascript
python3安装crypto出错及解决方法
2019/07/30 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
Python实现图片添加文字
2019/11/26 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
学校欢迎标语
2014/06/18 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
MySQL 5.7常见数据类型
2021/07/15 MySQL