[快学Python3]PyMySQL库
时间:2022-05-07
本文章向大家介绍[快学Python3]PyMySQL库,主要内容包括安装pymysql、常用对象及API、一个基本示例、小结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
概述
本文主要讲解如何使用pymysql库进行MySQL的管理操作。
主要讲解如何使用pymysql实现增删改查动作,并附上对应的示例。
安装pymysql
pip install PyMySQL
常用对象及API
在pymysql中提供了Connection和Cursor对象来管理操作MySQL。
常用对象
- Connection
代表一个与MySQL Server的socket连接,使用connect方法来创建一个连接实例。
- Cursor
代表一个与MySQL数据库交互对象,使用Connection.Cursor()在当前socket连接上的交互对象。
常用API
Connection对象常用的API:
connect() 创建一个数据库连接实例
begin() 开始一个事务
close() 发送一个退出消息,并关闭连接
commit() 提交修改至数据库
cursor() 创建一个cursor(游标)实例
ping() 检测服务器是否在运行
rollback() 回滚当前事务
select_db(db) 设置当前db
show_warnings() 显示警告信息
Cursor对象常用API:
close() 关闭当前cursor
execute() 执行一个sql语句
executemany() 执行批量sql语句
fetchall() 取所有数据
fetchone() 取一条数据
一个基本示例
下面我们看一个基本的示例,让大家感受下pymysql库的能力。
基本前提,假设你在本地已经安装了MySQL服务或是你拥有远程访问某个MySQL服务的权限。
用下列sql创建一个数据表,以便下面的示例演示:
# -*- coding:utf-8 -*-
import pymysql
import random
__author__ = '苦叶子'
if __name__ == "__main__":
print("PyMySQL基本示例")
# 创建一个连接实例
conn = pymysql.connect(
host="10.68.3.88", # mysql服务ip地址,若服务在本机则用localhost
port=3306, # mysql服务端口
user="liyiming", # 访问mysql的用户名
password="liyiming", # 访问mysql的密码
db="zzb_pro", # 默认连接到的数据库
charset="utf8" # 连接字符集
)
try:
# 创建用于交互的cursor对象
cursor = conn.cursor()
# 先插入10条测试数据
# 构建插入数据的sql
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
# 生成10条测试数据
sql_data = []
for index in range(0, 10):
email = "%.10f@126.com" % random.random()
password = random.random()
sql_data.append((email, password))
# 执行sql,进行批量插入数据
cursor.executemany(sql, sql_data)
# 提交至数据库
conn.commit()
# 查询5条数据
sql = "SELECT * FROM `users` LIMIT 5"
# 执行sql
cursor.execute(sql)
# 取查询到的所有数据
all_data = cursor.fetchall()
# 遍历打印出来
print("取所有查询到的数据")
for data in all_data:
print("id: %d email: %s password: %s" %
(data[0], data[1], data[2]))
# 取1条数据
# cursor.execute(sql)
one_data = cursor.fetchone()
print("n取1条数据")
print("id: %d email: %s password: %s" %
(one_data[0], one_data[1], one_data[2]))
finally:
# 最后把数据库连接关闭
conn.close()
小结
- 对SQL要熟悉,才能更好的应用PyMySQL库
- 其次要注意在构造sql时,最好构建成参数化方式,见示例
- 多练习最重要
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Pandas重复值处理
- Pandas缺失值处理
- Pandas分类数据和顺序数据转换为标志变量
- 使用ProxyBroker构建代理池
- 国内pypi镜像
- [已解决]Series object has no attribute explode
- 2019年Pandas官方用户调研
- 刚刚!程序员用力过猛,燃起来了!
- VSCode 中文乱码
- Python获取时间戳
- VScode Python no module的解决方法
- MacOS安装npm全局包的权限问题
- [已解决]报错run `npm audit fix` to fix them, or `npm audit` for details
- Hexo使用攻略-添加分类及标签
- print的简单使用