教你怎么用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 pdb调试方法分享
Jan 21 Python
Python中使用SAX解析xml实例
Nov 21 Python
Python使用MYSQLDB实现从数据库中导出XML文件的方法
May 11 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
Python使用xlwt模块操作Excel的方法详解
Mar 27 Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 Python
Python Grid使用和布局详解
Jun 30 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
如何使用python把ppt转换成pdf
Jun 29 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
python 两个一样的字符串用==结果为false问题的解决
Mar 12 Python
基于 Python 实践感知器分类算法
Jan 07 Python
Django集成富文本编辑器summernote的实现步骤
Python基础知识学习之类的继承
May 31 #Python
Django实现聊天机器人
Python趣味挑战之教你用pygame画进度条
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 #Python
解决pytorch读取自制数据集出现过的问题
Python爬虫基础初探selenium
You might like
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
在PHP中使用XML
2006/10/09 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
JQuery里选择超链接的实现代码
2011/05/22 Javascript
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
使用webpack搭建vue项目及注意事项
2019/06/10 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
python函数参数*args**kwargs用法实例
2013/12/04 Python
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
谈谈Python中的while循环语句
2019/03/10 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
python 字符串格式化的示例
2020/09/21 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
举例说明类变量和实例变量的区别
2016/06/30 面试题
继承公证书
2014/04/09 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
作风整顿剖析材料
2014/09/30 职场文书
python​格式化字符串
2022/04/20 Python
win10搭建配置ftp服务器的方法
2022/08/05 Servers