这篇文章主要为大家详细介绍了MySQL适配器PyMySQL的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文我们为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查。

什么是 PyMySQL?

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

PyMySQL 安装

在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。

PyMySQL 下载

如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:

$ pip install PyMySQL

如果你的系统不支持 pip 命令,可以使用以下方式安装:

1、使用 git 命令下载安装包安装(你也可以手动下载):

$ git clone https://github.com/PyMySQL/PyMySQL

$ cd PyMySQL/

$ python3 setup.py install

2、数据库操作实例,直接上代码。

import pymysql

import datainfo

import time

#获取参数

host = datainfo.host

username = datainfo.username

password = datainfo.password

database = datainfo.db

print()

#测试数据库连接

def testconnect():

#打开数据库链接

db = pymysql.connect(host,username,password,database)

#使用cursor() 方法创建一个游标对象 cursor

cursor = db.cursor()

#使用execute()方法执行SQL查询

cursor.execute("select version()")

#使用fetchone ()获取单条数据

data = cursor.fetchone()

print(data)

db.close()

#插入数据库

def InsertDate():

#打开数据库链接

db = pymysql.connect(host,username,password,database,charset='utf8')

#使用cursor() 方法创建一个游标对象 cursor

cursor = db.cursor()

create_time = time.strftime('%Y-%m-%d %H:%M:%S')

update_time = time.strftime('%Y-%m-%d %H:%M:%S')

start_time = time.strftime('%Y-%m-%d %H:%M:%S')

end_time = time.strftime('%Y-%m-%d %H:%M:%S')

remark = "测试插入信息"

print("开始")

#Sql 插入语句

sql = "insert into demo(start_time,end_time,creat_time,update_time,remark) " \

"VALUES ('%s','%s','%s','%s','%s')"\

%(start_time,end_time,create_time,update_time,remark)

try:

#执行sql

print("执行插入")

tt = cursor.execute(sql)

print(tt)

db.commit()

except UnicodeEncodeError as e :

#发生错误时回滚

print(e)

db.rollback()

db.close()

#查询操作

def selectData():

db = pymysql.connect(host, username, password, database, charset='utf8')

# 使用cursor() 方法创建一个游标对象 cursor

cursor = db.cursor()

sql = "select * from demo where id >='%d'" %(1)

try:

#执行sql

print("执行查询")

cursor.execute(sql)

results = cursor.fetchall()

for row in results:

id = row[0]

start_time = row[1]

end_time = row[2]

create_time = row[3]

update_time = row[4]

remark = row[5]

#打印结果

print("id = %d,start_time=%s,end_time=%s,create_time=%s,update_time=%s,remark=%s" %(id,start_time,end_time,create_time,update_time,remark))

db.commit()

except UnicodeEncodeError as e :

#发生错误时回滚

print(e)

db.close()

#更新操作

def update_data():

db = pymysql.connect(host, username, password, database, charset='utf8')

# 使用cursor() 方法创建一个游标对象 cursor

cursor = db.cursor()

update_time = time.strftime('%Y-%m-%d %H:%M:%S')

sql = "update demo set update_time ='%s' where id >='%d' " %(update_time,1)

try:

#执行sql

print("执行更新")

cursor.execute(sql)

db.commit()

except UnicodeEncodeError as e :

#发生错误时回滚

print(e)

db.rollback()

db.close()

#删除操作

def delete_Date():

db = pymysql.connect(host, username, password, database, charset='utf8')

# 使用cursor() 方法创建一个游标对象 cursor

cursor = db.cursor()

sql = "delete from demo where id

try:

#执行sql

print("执行删除")

cursor.execute(sql)

db.commit()

except UnicodeEncodeError as e :

#发生错误时回滚

print(e)

db.rollback()

db.close()

if __name__ == '__main__':

testconnect()

InsertDate()

selectData()

update_data()

delete_Date()

mysql适配器_MySQL适配器之PyMySQL的详细介绍相关推荐

  1. oracle的优化适用于mysql吗_性能优化之数据库优化,适用于Sqlite、Mysql、Oracle、Sql server,详细介绍了索引和事务及部分针对Sqlite的优化...

    本文为性能优化的第一篇--数据库性能优化,原理适用于大部分数据库包括Sqlite.Mysql.Oracle.Sql server,详细介绍了索引(优缺点.分类.场景.规则)和事务,最后介绍了部分单独针 ...

  2. mysql案例_MySQL实例crash的案例详细分析

    [问题描述] 我们生产环境有一组集群的多台MySQL服务器(MySQL 5.6.21),不定期的会crash,但error log中只记录了重启信息,未记录crash时的堆栈: mysqld_safe ...

  3. mysql drop库_Mysql 删除数据库drop database详细介绍

    Mysql 删除数据库drop database 方法-:使用cmd模式下载删除 mysql> drop database school; 此命名删除了school数据库.但如果school数据 ...

  4. mysql 死锁 代码_MySQL死锁问题解决的代码详细介绍

    一次MySQL死锁问题解决 一.环境CentOS, MySQL 5.6.21-70, JPA 问题场景:系统有定时批量更新数据状态操作,每次更新上千条记录,表中总记录数约为500W左右. 二.错误日志 ...

  5. mysql适配器_MySQL适配器PyMySQL详解

    本文我们为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查. 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一 ...

  6. innodb和my查询速度_吃透MySQL:MyISAM和InnoDB存储引擎详细介绍

    一,MySQL基本架构 MySQL基础架构可以分为两大类:Server层和存储引擎层. Server层: Server层涵盖了MySQL大部分核心业务功能,并且所有存储引擎的功能都在这一层实现. 存储 ...

  7. upupw mysql数据库路径_Nginx版UPUPW控制面板详细介绍

    UPUPW Nginx版PHP环境控制面板分为核心功能区.检测备份区.启动关闭区三大块,要启用某个功能只要输入相应功能左边的字符按回车键即可. 核心功能区: 1-添加虚拟主机 即除了默认的主机以外,设 ...

  8. mysql rbo cbo_Oracle的RBO和CBO详细介绍和优化模式设置方法

    Oracle的优化器有两种优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CB ...

  9. php mysql 字段自增_MySQL自增字段取值的详细介绍(附代码)

    本篇文章给大家带来的内容是关于MySQL自增字段取值的详细介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1 前言 本文来自回答思否网友的一个问题,这个网友新建了一张表 ...

最新文章

  1. PHP 预编译加速: eAccelerator的安装和性能比较
  2. R语言ggplot2可视化绘制分组水平并行条形图(bar plot)并为条形图内添加标签
  3. openFileDialog 打开TXT记事本文件写入数据库
  4. Java注解Annotation详解
  5. CSDN ARIMA R语言_R语言实现Fleiss#39; Kappa系数处理多个观察者一致性检验
  6. Java基础篇:Iterator迭代器
  7. 前端性能优化之防抖-debounce
  8. C++中的IPv6网络程序设计
  9. 如何利用bat在同一个IE用多个选项卡的方式打开多个网址? 如何利用bat在同一个IE用多个选项卡的方式打开多个网址? 我的网址是这样的http://www.xags.gov.cn:8003/gga
  10. Python查杀Windows系统中指定进程
  11. 联合国为何 Pick 腾讯?
  12. ServletContextListener Servlet侦听器示例
  13. 本特利3500_3500系统轴振信号异常波动问题浅析及建议
  14. 有意思的签到题集合~~
  15. 微信小程序 登陆过期,请重新授权
  16. 深交所“区块链50指数”,成分股的成色几何?
  17. 小冰岛——小户赛茶的特点
  18. Tektronix泰克MDO3054示波器
  19. OJ 1202 镂空三角形
  20. 工作上遇到困难,你该怎样获得他人的支持和帮助?

热门文章

  1. ghost mysql 乱码,ghost安装之mysql
  2. GUI为什么不设计为多线程?
  3. vmware虚拟机i copied it 和 i moved it的区别
  4. 94. Ext.MessageBox消息框
  5. bootstrap 仿实例
  6. 1、深入理解 Laravel Eloquent(一)——基本概念及用法
  7. Postgresql的character varying = bytea问题
  8. Eclipse+svn+subclipse配置
  9. 解决自定义UITableViewCell在浏览中出现数据行重复的问题
  10. 华为机试HJ52:计算字符串的距离(动态规划)