目录
一、安装pymysql
二、连接数据库
三、数据库操作
3.1 查询
3.2 更新
3.3 使用循环批量更新
Python 系列文章学习记录:
Python系列之Windows环境安装配置_开着拖拉机回家的博客-CSDN博客
Python系列之变量和运算符_开着拖拉机回家的博客-CSDN博客
Python系列之判断和循环_开着拖拉机回家的博客-CSDN博客
Python系列之字符串和列表_开着拖拉机回家的博客-CSDN博客
Python系列之文件操作和函数_开着拖拉机回家的博客-CSDN博客
Python系列模块之标准库OS详解_开着拖拉机回家的博客-CSDN博客
Python系列模块之标准库re详解_开着拖拉机回家的博客-CSDN博客
Python系列模块之标准库json详解_开着拖拉机回家的博客-CSDN博客
Python系列模块之标准库shutil详解_开着拖拉机回家的博客-CSDN博客
一、安装pymysql
在Pycharm 中 输入 import pymysql , 根据提示 我们直接点击安装,模块会安装到默认的 Python 安装目录的 lib目录,如下是我 安装好 pymysql 模块路径。
或者使用pip
二、连接数据库
使用connect函数创建连接对象,此连接对象提供关闭数据库、事务回滚等操作
一般传参为:host, user, password, port(默认为3306), database(想要连接的数据库名)
connect() 方法参数
参数 说明:
参数 | 说明 |
host= | 数据库连接地址 |
user= | 数据库用户名 |
password= | 数据库password |
database= | 要连接的数据库名字 |
port=3306 | 连接端口,默认 3306 |
charset=utf8 | 设置字符集,一般为utf8 |
connect_timeout=10 | 连接数据库超时时间,一般默认为10秒 |
dsn | 数据源名称,给出该参数表示数据库依赖 |
max_allowed_packet | 16 * 1024 * 1024 |
autocommit | False 自动提交默认 为falsse |
连接对象的常见方法:
方法名 | 说明 |
cursor() | 获取游标对象,操作数据库,如执行DML操作,调用存储过程等 |
commit() | 提交事务 |
rollback() | 回滚事务 |
close() | 关闭数据库连接 |
cursor游标对象的常见方法
方法名 | 说明 |
execute(query) | 执行数据库操作,如sql语句或数据库命令 |
executemany(query,params) | 用于批量操作,如:批量更新 |
fetchone() | 获取查询结果集中的下一条记录 |
fetchmany(size) | 获取查询结果集中指定数量的记录,size默认为1 |
fetchall() | 获取查询结果集中所有记录 |
nextset() | 跳至下一个可用的结果集 |
close() | 关闭当前游标对象 |
三、数据库操作
3.1 查询
import pymysql
# 创建数据库连接对象
db = pymysql.connect(host="192.168.2.211",
user="root",
password="winner@001",
database="ipvacloud",
charset="utf8")
# 创建一个新游标来执行查询
curses = db.cursor()
siteId = "Ahczlcc_P00001"
# 查询SQL
selectSQL = """
SELECT SiteId,SiteName from site_all_info where SiteId ='%s';
""" % siteId
try:
# 执行sql语句,也可执行数据库命令
curses.execute(selectSQL)
# 所有结果
result = curses.fetchall()
print(type(result))
print(result)
except Exception as e:
db.rollback() # 回滚
print("查询失败", e)
finally:
curses.close() # 关闭当前游标
db.close() # 关闭数据库连接
查询结果:
增删改需要有提交事务的操作,查不需要提交事务,但如果循环查询,务必提交事务,否则结果都是重复的。
3.2 更新
import pymysql
# 创建数据库连接对象
db = pymysql.connect(host="192.168.2.211",
user="root",
password="winner@001",
database="ipvacloud",
charset="utf8")
# 创建一个新游标来执行查询
curses = db.cursor()
siteId = "Ahczlcc_P00001"
siteName = "大中国安徽滁州乐彩城"
# 查询SQL
selectSQL = """
update site_all_info set sitename = '%s' where SiteId ='%s';
""" % (siteName, siteId)
try:
# 执行sql语句,也可执行数据库命令
curses.execute(selectSQL)
# 增删改,必须执行事务
db.commit()
# 所有结果
result = curses.fetchall()
print(type(result))
print(result)
except Exception as e:
db.rollback() # 回滚
print("查询失败", e)
finally:
curses.close() # 关闭当前游标
db.close() # 关闭数据库连接
查询是否更新成功
3.3 使用循环批量更新
import pymysql
# 创建数据库连接对象
db = pymysql.connect(host="192.168.2.211",
user="root",
password="winner@001",
database="ipvacloud",
charset="utf8")
# 创建一个新游标来执行查询
curses = db.cursor()
siteId = "Ahczlcc_P00001"
siteName = "大中国安徽滁州乐彩城"
table_name = "site_all_info"
update_list = ['Ahczlcc_P00001S00004', 'Ahczlcc_P00001S00005']
update_condition_list = ['北餐饮门', '北大门']
for i in range(len(update_list)):
# 查询SQL
selectSQL = """
update %s set sitename = '%s' where SiteId ='%s';
""" % (table_name, update_condition_list[i], update_list[i])
print(table_name, update_condition_list[i], update_list[i])
try:
# 执行sql语句
curses.execute(selectSQL)
# 执行事务
db.commit()
except Exception as e:
db.rollback()
print(e)
curses.close()
db.close()
执行结果对比:
Python 系列文章学习记录:
Python系列之Windows环境安装配置_开着拖拉机回家的博客-CSDN博客
Python系列之变量和运算符_开着拖拉机回家的博客-CSDN博客
Python系列之判断和循环_开着拖拉机回家的博客-CSDN博客
Python系列之字符串和列表_开着拖拉机回家的博客-CSDN博客
Python系列之文件操作和函数_开着拖拉机回家的博客-CSDN博客
Python系列模块之标准库OS详解_开着拖拉机回家的博客-CSDN博客
Python系列模块之标准库re详解_开着拖拉机回家的博客-CSDN博客
Python系列模块之标准库json详解_开着拖拉机回家的博客-CSDN博客
Python系列模块之标准库shutil详解_开着拖拉机回家的博客-CSDN博客
参考:
python——数据库操作PyMysql使用详解_南京丛林Jungle的博客-CSDN博客