首页 > 数据库 >python3使用pymsql操作mysql数据库

python3使用pymsql操作mysql数据库

时间:2023-11-12 19:33:05浏览次数:36  
标签:cur 示例 python pymsql pymysql conn mysql python3

操作系统 :Windows 10_x64 python版本 :3.9.2 pymysql版本: 1.0.2 MySQL版本: 5.7.38  

之前写过一篇关于python操作mysql数据库的文章:

https://www.cnblogs.com/MikeZhang/p/pythonOptMysql20170703.html

当时是基于python 2.7 和 mysql 5.5来整理的,但目前python 2.7已经不再维护,主流的是python 3,今天基于python 3.9和mysql 5.7重新整理下访问mysql的文档,并提供基础使用示例、代码封装类,以及开发过程中可能会遇到的坑。

一、背景材料

 1、pymysql库

pymysql是一个纯python实现的mysql操作库,安装及使用起来比较方便,且可跨平台使用。

pypi地址: https://pypi.org/project/pymysql/

GitHub地址: https://github.com/PyMySQL/PyMySQL

文档地址:https://pymysql.readthedocs.io/en/latest/

安装命令:

pip install pymysql

2、heidisql数据库访问软件

Windows环境数据查看工具有很多,heidisql是我日常使用的mysql管理工具,这里也顺便提供下。

大致界面如下:

 个人感觉的优点如下:

1)免费;
2)提供绿色软件包,无需安装即可使用;
3)对数据库的界面操作可实时生成sql语句,便于复制;

官网: https://www.heidisql.com/

目前最新版是12.6,我经常使用的是9.4版,heidisql可自行从官网下载,也可从我文末提供的渠道获取(仅9.4版和12.6版的绿色包):

关注微信公众号(聊聊博文,文末可扫码)后回复 20231112 获取。

二、基础使用示例

查看版本信息:

import pymysql
print(pymysql.__version__)

数据库连接:

conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='', db='mysql')
cur = conn.cursor()
查询数据:
cur.execute("SELECT Host,User FROM user")
print(cur.description)

for row in cur:
    print(row)
关闭连接:
cur.close()
conn.close()
完整示例代码(mysqlTest1.py):
#! /usr/bin/env python 
#-*- coding:utf-8 -*- 

import pymysql

conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='mysql')
cur = conn.cursor()
cur.execute("SELECT Host,User FROM user")
print(cur.description)

for row in cur:
    print(row)

cur.close()
conn.close()
运行效果:

 三、封装示例

 1、为什么要封装

1)处理python3访问mysql常见的异常;
2)便于以后直接使用,避免重复造轮子;

 2、封装注意事项

1)需要提供检测MySQL连接状态的的接口,避免query时链接不可用;
2)提供重连机制;
3)执行insert、update语句时,考虑提交频率,提高执行效率;
4)提供回滚功能;
5)pymysql的connect函数里面autocommit默认为False,执行select语句时,需要添加主动commit动作,避免引起MySQL长事务;

 3、示例代码

这里提供一个完整的封装和使用示例代码,mysql表结构如下:

CREATE TABLE `user1` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `user_id` VARCHAR(20) NULL DEFAULT '0',
    `user_name` VARCHAR(20) NULL DEFAULT '0',
    `password` VARCHAR(20) NULL DEFAULT '0',
    PRIMARY KEY (`id`)
)
ENGINE=InnoDB
;
类封装及使用示例代码如下(mysqlTest2.py):

完整代码可从如下渠道获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20231112 获取。

运行效果如下:

四、资源下载

本文涉及文件和示例代码从如下途径获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20231112 获取。

 

标签:cur,示例,python,pymsql,pymysql,conn,mysql,python3
From: https://www.cnblogs.com/MikeZhang/p/pymyqlExample20231112.html

相关文章

  • linux下安装mysql
    Linux下安装MySQL概述简单介绍MySQL是什么,运用场景。在Linux操作系统(默认64位)下安装MySQL需要注意的点,以及通过navicate16连接本地MySQL实现图形化操作。注意:需要root权限,或者您能正常使用sudo提权。MySQL简介MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于......
  • mysql关于主表和从表
    typeGoodsstruct{BaseModelCategoryIDint32`gorm:"type:int;notnull"`CategoryCategoryBrandsIDint32`gorm:"type:int;notnull"`BrandsBrands} Goods是从表,从表中addforeignkey关系,reference主表altertab......
  • Mysql索引详解
    ​ 一、索引1.1索引由来如果数据量过大,没有索引就需要扫描全表挨个匹配速度会非常慢,这时就该用到索引了。通过索引表找到该行数据对应的物理地址然后访问相应的数据。索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。事实上,索引是一种数据结构,用于帮助我们在大......
  • linux安装mysql
    linux安装mysql概述:mysql是关系型数据库,可运行在linux、windows、macOS等各个操作系统。由于体积小、速度快、低成本等优点,大多数企业在软件开发都选择MYSQL作为软件数据库。本次linux安装mysql使用的是5.7版本,其他版本也是大同小异,思路步骤都一致。第一步:下载mysql下载地址:ht......
  • mysql ssh隧道连接数据库报错
    1.ssh隧道连接数据库报错:80070007:SSHTunnel:Serverdoesnotsupportdiffie-hellman-group1-sha1forkeyexchange①./etc/ssh/sshd_config最下面加入下面配置:KexAlgorithmsdiffie-hellman-group1-sha1,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp3......
  • mysql 主从复制
    本地启动了三台虚拟机,分别是,cdh1(192.168.56.121)、cdh2(192.168.56.122)、cdh3(192.168.56.123)其中cdh1是主库,cdh2、cdh3是从库需要提前对三个库都把测试库创建好:CREATEDATABASE`mytest`DEFAULTCHARACTERSET'utf8mb4'DEFAULTCOLLATE'utf8mb4_general_ci';然后我......
  • mysql log_bin整理
    二进制日志记录开关,二进制日志用于记录mysql数据更新的日志文件,对于非变更数据的操作不予记录,比如select、show等。showvariableslike'log_bin';mysql>showvariableslike'log_bin';+---------------+-------+|Variable_name|Value|+---------------+-------+|......
  • Java基础、MySQL数据库、Web前端
    三、简答题(共10题,共30分)1、请写出CSS的6种选择器,并举例?l 标签选择器:a、li、div、table等等l 类选择器:.nav、.itemsl id选择器:#logo、#item1l 通配符选择器:*l 后代选择器:ulli、divaspan等l 并集选择器:li,div,h1l 交集选择器:li.item、input.username等2、将图片展示在网页......
  • MySQL:日期时间函数整理
    文档https://www.w3schools.cn/sql/sql_ref_mysql.htmlhttps://dev.mysql.com/doc/refman/8.0/en/built-in-function-reference.html(目录)获取日期时间函数描述NOW返回当前日期和时间CURDATE返回当前日期CURRENT_DATE返回当前日期CURRENT_TIME返回当......
  • MySQL的函数
    MySQL的函数概述:在MySQL中,为了提高代码重用性和隐藏实现细节,MySQL提供了很多函数函数可以理解为别人封装好的模板代码(相当于java中的方法)在MySQL中,函数非常多,主要可以分为以下几类聚合函数数学函数字符串函数日期函数控制流函数窗口函数聚合函数——group_concat()概述:在MySQL中,聚......