Python pymysql——Mysql数据库Python化操作

前言

Mysql数据库是目前较为流行使用的数据库之一,众多编程语言都有对其的支持扩展包接口,当然于python而言亦有专门扩展库以便帮助开发者对Mysql数据库进行相应的操作。其中,由于python版本不同,对Mysql支持的库也有区别,目前使用较为普遍的有pymysql和MySQLdb,两者功能上无明显差异,只是前者支持python3.X版本,后者应用于python2.X版本。

在此以python3.X版本为平台基础,对pymysql的相关基础及使用方法作简单介绍。

安装

直接使用pip命令进行安装

pip install pymysql

概念基础

在pymysql中(当然,其他SQL数据库接口也一样),主要有三个基本概念:连接对象、游标对象以及查询SQL select语句的结果。

1)连接对象:代表一个到数据库的连接,它是提交和回滚操作的接口,提供了数据库软件包的细节信息,并能生成游标对象。

2)游标对象:代表了需提交执行的SQL语句,同时它也可以被用来访问和遍历SQL语句的执行结果。

3)查询SQL select语句的结果:SQL select语句的执行结果在python是一个嵌套的序列,它代表了数据库表中的行。

使用方法

1)初始化准备

import pymysql

# 初始化连接配置
ConnectConfig = {
     ‘host‘: ‘localhost‘,
     ‘port‘: 3306,
     ‘user‘: ‘root‘,
     ‘passwd‘: ‘******‘,
     ‘charset‘: ‘utf8‘,
     ‘db‘: ‘tesdbt‘
 }

# 创建连接对象
db = pymysql.connect(
     host=ConnectConfig[‘host‘],
     port=ConnectConfig[‘port‘],
     user=ConnectConfig[‘user‘],
     passwd=ConnectConfig[‘passwd‘],
     charset=ConnectConfig[‘charset‘],
     db=ConnectConfig[‘db‘]
 )

# 创建游标对象
cursor = db.cursor()

2)执行SQL语句

示例1——创建表和添加记录

# 创建数据表
sql="create table people(name char(30),job char(10),pay int(4));"
cursor.execute(sql)
# 添加记录
cursor.execute(‘insert into people values(%s,%s,%s);‘,(‘Bob‘,‘dev‘,50000))# 或者也可以一次性添加多条记录
rows = [(‘Sue‘,‘mus‘,70000),(‘Ann‘,‘adm‘,60000)]
cursor.executemany(‘insert into people values(%s,%s,%s);‘,rows)
# 操作完成后还需要进行事务提交以便数据库保存
db.commit()
# 此外连接对象还有事务回滚操作:db.rollback()
# 最后关闭游标对象和连接对象
cursor.close()
db.close()

示例2——查询、更新和删除记录

# 查询people表中所有记录
cursor.execute(‘select * from people;‘)
result = cursor.fetchall()
for row in result:
    print(row)

""" Output: (‘Bob‘,‘dev‘,50000) (‘Sue‘,‘mus‘,70000) (‘Ann‘,‘adm‘,60000) """

# 更新people表中职务为adm的人员工资增加12000
cursor.execute(‘update people set pay=pay+12000 where job="adm";‘)
cursor.execute(‘select * from people where job="adm";‘)
db.commit();
result = cursor.fetchall()
print(result)

"""Output: [(‘Ann‘,‘adm‘,72000)] """

# 删除people表中姓名为Bob的记录
cursor.execute(‘delete from people where name="Bob";‘)
cursor.execute(‘select * from people;‘)
db.commit();
result = cursor.fetchall()
for row in result:
    print(row)

"""Output: (‘Sue‘,‘mus‘,70000) (‘Ann‘,‘adm‘,72000) """

3)其他使用

①cursor.rowcount属性:返回执行完SQL语句后所影响的行数

# 使用rowcount获取所影响的行数
cursor.execute(‘select * from people;‘)
print(cursor.rowcount)  # Output:3

②cursor.description属性:返回执行完SQL查询语句后所得到的字段名和字段属性

# 使用description获得表字段名和字段属性
cursor.execute(‘select * from people;‘)
print(cursor.description)

""" Output: ((‘name‘,None,None,None,None,None,None),(‘job‘,None,None,None,None,None,None), (‘pay‘,None,None,None,None,None,None))# 具体列属性描述请参阅相关API说明 """

# 格式化表字段名
cursor.execute(‘select * from people;‘)
colnames = [desc[0] for desc in cursor.description]
print(colnames)

""" Output: [‘name‘,‘job‘,‘pay‘] """

③cursor.fetchall():返回执行完SQL查询语句后得到结果的列表(元素为行的元组形式)

cursor.fetchone():返回执行完SQL查询语句后得到结果的第一行

cursor.fetchmany(n):返回执行完SQL查询语句后得到结果的前n行

这里要注意的是fetch获得的行是根据游标来定位的,就是说每一次调用fetch相关行数,游标就会移动,下一次再调用fetch时从上次游标的位置开始获得记录,当其已经到表末尾时,则返回空序列。

# 连续调用fetch方法
cursor.execute(‘select * from people;‘)
rows1 = cursor.fetchall()
print(rows1)  # Output:[(‘Bob‘,‘dev‘,50000),(‘Sue‘,‘mus‘,70000),(‘Ann‘,‘adm‘,60000)]
rows2 = cursor.fetchall()
print(rows2)  # Output:[]

④cursor.scroll(num,mode):控制游标对象的移动以便重定fetch方法

# 使用scroll方法调整游标位置
cursor.scroll(1,mode=‘relative‘)  # 相对当前位置顺序移动
cursor.scroll(2,mode=‘absolute‘)  # 相对绝对位置顺序移动


以上便是对python数据库操作的pymysql库一些简单介绍,希望对大家能有所帮助,如有什么问题欢迎大家留言学习交流。

如想深入了解学习pymysql欢迎查阅相关文档https://pymysql.readthedocs.io/en/latest/index.html

原文地址:https://www.cnblogs.com/Unikfox/p/9241391.html

时间: 2024-10-05 19:46:28

Python pymysql——Mysql数据库Python化操作的相关文章

python专题-Mysql数据库(python3._+ PyMysql)

之前写过一篇 Python使用MySQL数据库的博客,主要使用的是Python2和MySQLdb驱动. python使用mysql数据库 Python2 ---> Python3 MySQLdb --> PyMySQL 一,安装PyMySQL Python是编程语言,MySQL是数据库,它们是两种不同的技术:要想使Python操作MySQL数据库需要使用驱动.这里选用PyMySQL驱动.下载地址: https://pypi.python.org/pypi/PyMySQL https://git

Python连接MySQL数据库之pymysql模块使用

Python连接MySQL数据库之pymysql模块使用 Python3连接MySQL PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. Django中也可以使用PyMySQL连接MySQL数据库. PyMySQL安装 pip install pymysql 连接数据库 注意事项 在进行本文以下内容之前需要注意: 你有一个MySQL数据库,并且已经启动. 你有可以连接该数据库的用户名和密码 你有一个有权限操作的datab

Python 对mysql数据库的操作

Python 对mysql数据库的操作 #!/usr/bin/python #-*- coding: utf-8 -*- import MySQLdb class mysql:     def __init__(self,sql,host='127.0.0.1',username='root',password='root',dbname='dbname'):         self.username=username         self.password=password       

python的mysql数据库操作

python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 我目前使用的是mysql数据库,所以这里只是记录了python中mysql的使用 在写my

Python使用MySQL数据库(新)

之前写过一篇 Python使用MySQL数据库的博客,主要使用的是Python2和MySQLdb驱动. python使用mysql数据库 然而,2016年开始,我从Python2切换到了Python3,Python2已经基本不再使用,MySQLdb驱动从2014年1月停止了维护.所以,打算重新再来写这篇博客. Python2 ---> Python3 MySQLdb --> PyMySQL 一,安装PyMySQL Python是编程语言,MySQL是数据库,它们是两种不同的技术:要想使Pyth

Python与Mysql 数据库的连接,以及查询。

python与mysql数据库的连接: pymysql是python中对数据库的连接模块:因此应当首先安装pymysql数据库模块. 执行pip install pymysql 命令. 然后在python 中创建数据库连接表: import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB", charset='

python连接mysql数据库——版本问题

今天终于解决了使用python连接数据库不成功的问题,现将过程总结如下: 一.出现的问题 在使用python连接mysql数据库是一直出现如下问题: 1.只能连接到我数据库中的的第一个数据库,但是不能操作里面的表,会报错表不存在.(表是存在的)2.更换其他数据库后,直接报错找不到该数据库.(数据库和表均存在) 运行连接数据库的代码,会出现: conn = pymysql.connect(user='root', password='password', database='XXX') Trace

使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据

应用场景: 我们需要设计一个数据库来保存多个文档中每个文档的关键字.假如我们每个文档字符都超过了1000,取其中出现频率最大的为我们的关键字. 假设每个文档的关键字都超过了300,每一个文件的0-299号存储的是我们的关键字.那我们要建这样一个数据库,手动输入这样的一个表是不现实的,我们只有通过程序来帮我实现这个重复枯燥的操作. 具体的示意图如下所示: 首先图1是我们的原始表格: 图1 这个时候我们需要程序来帮我们完成自动字段的创建和数据的插入. 图2 上图是我们整个表的概况.下面我们就用程序来

Python连接Mysql数据库(Debian)

Python连接Mysql数据库(Debian) 以下是Python 2.*版本的安装方法,MySQL-python暂不支持Python 3.*版本 提前要做的工作: 安装setuptools,在终端中运行 wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python 安装pip,下载“get_pip.py”,运行 python get_pip.py 运行如下命令装好必要的包 sudo apt-get install python-d