[Python3]PyMySQL库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python3]PyMySQL库相关的知识,希望对你有一定的参考价值。
概述
本文主要讲解如何使用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 = "%[email protected]" % 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时,最好构建成参数化方式,见示例
-
多练习最重要
以上是关于[Python3]PyMySQL库的主要内容,如果未能解决你的问题,请参考以下文章