mysql适配器_MySQL适配器之PyMySQL的详细介绍
这篇文章主要为大家详细介绍了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的详细介绍相关推荐
- oracle的优化适用于mysql吗_性能优化之数据库优化,适用于Sqlite、Mysql、Oracle、Sql server,详细介绍了索引和事务及部分针对Sqlite的优化...
本文为性能优化的第一篇--数据库性能优化,原理适用于大部分数据库包括Sqlite.Mysql.Oracle.Sql server,详细介绍了索引(优缺点.分类.场景.规则)和事务,最后介绍了部分单独针 ...
- mysql案例_MySQL实例crash的案例详细分析
[问题描述] 我们生产环境有一组集群的多台MySQL服务器(MySQL 5.6.21),不定期的会crash,但error log中只记录了重启信息,未记录crash时的堆栈: mysqld_safe ...
- mysql drop库_Mysql 删除数据库drop database详细介绍
Mysql 删除数据库drop database 方法-:使用cmd模式下载删除 mysql> drop database school; 此命名删除了school数据库.但如果school数据 ...
- mysql 死锁 代码_MySQL死锁问题解决的代码详细介绍
一次MySQL死锁问题解决 一.环境CentOS, MySQL 5.6.21-70, JPA 问题场景:系统有定时批量更新数据状态操作,每次更新上千条记录,表中总记录数约为500W左右. 二.错误日志 ...
- mysql适配器_MySQL适配器PyMySQL详解
本文我们为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查. 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一 ...
- innodb和my查询速度_吃透MySQL:MyISAM和InnoDB存储引擎详细介绍
一,MySQL基本架构 MySQL基础架构可以分为两大类:Server层和存储引擎层. Server层: Server层涵盖了MySQL大部分核心业务功能,并且所有存储引擎的功能都在这一层实现. 存储 ...
- upupw mysql数据库路径_Nginx版UPUPW控制面板详细介绍
UPUPW Nginx版PHP环境控制面板分为核心功能区.检测备份区.启动关闭区三大块,要启用某个功能只要输入相应功能左边的字符按回车键即可. 核心功能区: 1-添加虚拟主机 即除了默认的主机以外,设 ...
- mysql rbo cbo_Oracle的RBO和CBO详细介绍和优化模式设置方法
Oracle的优化器有两种优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CB ...
- php mysql 字段自增_MySQL自增字段取值的详细介绍(附代码)
本篇文章给大家带来的内容是关于MySQL自增字段取值的详细介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1 前言 本文来自回答思否网友的一个问题,这个网友新建了一张表 ...
最新文章
- PHP 预编译加速: eAccelerator的安装和性能比较
- R语言ggplot2可视化绘制分组水平并行条形图(bar plot)并为条形图内添加标签
- openFileDialog 打开TXT记事本文件写入数据库
- Java注解Annotation详解
- CSDN ARIMA R语言_R语言实现Fleiss#39; Kappa系数处理多个观察者一致性检验
- Java基础篇:Iterator迭代器
- 前端性能优化之防抖-debounce
- C++中的IPv6网络程序设计
- 如何利用bat在同一个IE用多个选项卡的方式打开多个网址? 如何利用bat在同一个IE用多个选项卡的方式打开多个网址? 我的网址是这样的http://www.xags.gov.cn:8003/gga
- Python查杀Windows系统中指定进程
- 联合国为何 Pick 腾讯?
- ServletContextListener Servlet侦听器示例
- 本特利3500_3500系统轴振信号异常波动问题浅析及建议
- 有意思的签到题集合~~
- 微信小程序 登陆过期,请重新授权
- 深交所“区块链50指数”,成分股的成色几何?
- 小冰岛——小户赛茶的特点
- Tektronix泰克MDO3054示波器
- OJ 1202 镂空三角形
- 工作上遇到困难,你该怎样获得他人的支持和帮助?
热门文章
- ghost mysql 乱码,ghost安装之mysql
- GUI为什么不设计为多线程?
- vmware虚拟机i copied it 和 i moved it的区别
- 94. Ext.MessageBox消息框
- bootstrap 仿实例
- 1、深入理解 Laravel Eloquent(一)——基本概念及用法
- Postgresql的character varying = bytea问题
- Eclipse+svn+subclipse配置
- 解决自定义UITableViewCell在浏览中出现数据行重复的问题
- 华为机试HJ52:计算字符串的距离(动态规划)