Python使用pymysql三方库操作 mysql数据库

为什么要使用pymysql

在使用Python工作与学习中难免会使用到mysql数据库,使用pymysql三方库可以让我们轻松的对数据库的记录进行操作,如创建、修改,删除表,如增加、删除、修改、查询数据表中的记录,下边记录一下pymysql的使用方法:


连接方法 Connect = connect = Connection

python 复制代码
# 创建mysql数据库连接
conn = Connection(
    user='root',
    host='192.168.109.135',
    password='test_12345',
    port=3306,
    database='test_db',
    charset='utf8',
    cursorclass=cursors.DictCursor
)

CURSOR种类

cursor 的种类有四种,默认使用的是Cursor,还有DictCursor,SSCursor,SSDictCursor,Cursor 返回的结果是以元组的形式返回的,DictCursor,是以字典的形式返回的。DictCursor是继承了Cursor与DictCursorMixin,DictCursorMixin里面只有函数两个方法。(可以选择自己需要的返回形式)

INSERT INTO语句(增)

单条数据插入

python 复制代码
 data = (1, 'group1', 'group1/M00/00/00/wKhthmT1PGuAXV09AAABFcYZOGg5350.py', 'Upload successed.', 'fdfs.py', '277B', '192.168.109.134', 'fdfs.py')
 with conn.cursor() as cursor:
        # Create a new record
        sql = "INSERT INTO `upload_file` (`Group name`, `Remote file_id`, `Status`, `Local file name`, `Uploaded size`, `Storage IP`, `Filename`)" \
              " VALUES (%s, %s, %s, %s, %s, %s, %s)"
        cursor.execute(sql, data)
        conn.commit()

多条数据插入

python 复制代码
 data = ((1, 'group1', 'group1/M00/00/00/wKhthmT1PGuAXV09AAABFcYZOGg5350.py', 'Upload successed.', 'fdfs.py', '277B', '192.168.109.134', 'fdfs.py'), (2, 'group1', 'group1/M00/00/00/wKhthmT1TMKAH20TAAAD-MJMli03267.py', 'Upload successed.', 'fdfs.py', '1016B', '192.168.109.134', 'fdfs.py'), (3, 'group1', 'group1/M00/00/00/wKhthmT1TSqAFhCyAAxZcPR00vw.tar.gz', 'Upload successed.', 'fastdfs-6.06.tar.gz', '790.36KB', '192.168.109.134', 'fastdfs-6.06.tar.gz'), (4, 'group1', 'group1/M00/00/00/wKhthmT1TTCABEUgAABN8HAGbcY.tar.gz', 'Upload successed.', 'fastdfs-nginx-module-1.22.tar.gz', '19.48KB', '192.168.109.134', 'fastdfs-nginx-module-1.22.tar.gz'), (5, 'group1', 'group1/M00/00/00/wKhthmT1TTWAU-W3ABBjHPqFuIs.tar.gz', 'Upload successed.', 'nginx-1.22.1.tar.gz', '1.02MB', '192.168.109.134', 'nginx-1.22.1.tar.gz'), (6, 'group1', 'group1/M00/00/00/wKhthmT1TUCAaierAAKKfr3HBzE.tar.gz', 'Upload successed.', 'libfastcommon-1.0.43.tar.gz', '162.62KB', '192.168.109.134', 'libfastcommon-1.0.43.tar.gz'), (7, 'group1', 'group1/M00/00/00/wKhthmT1TVeANtONAAKKfr3HBzE.tar.gz', 'Upload successed.', '/tmp/libfastcommon-1.0.43.tar.gz', '162.62KB', '192.168.109.134', 'libfastcommon-1.0.43.tar.gz'))
 with conn.cursor() as cursor:
        # Create a new record
        sql = "INSERT INTO `upload_file` (`Group name`, `Remote file_id`, `Status`, `Local file name`, `Uploaded size`, `Storage IP`, `Filename`)" \
              " VALUES (%s, %s, %s, %s, %s, %s, %s)"
        cursor.executemany(sql, data)
        conn.commit()

DELETE 语句(删)

python 复制代码
def delete(pk: int):
    """
    delete from table where filed1='';
    :param pk:
    :return:
    """
    with conn.cursor() as cursor:
        # delete a record
        SQL = "delete from `upload_file` where id=%d" % pk
        cursor.execute(SQL)
        conn.commit()

UPDATE SET 语句(改)

python 复制代码
def update(pk):
    """update table set column1=value1, column2=value2"""
    with conn.cursor() as cursor:
        # delete a record
        SQL = "update upload_file set Filename='test.txt' where id=%d" % pk
        cursor.execute(SQL)
        conn.commit()

SELECT 语句(查)

多记录查询

python 复制代码
    def select(self, pk=None):
        with conn.cursor() as cursor:
            sql = """ SELECT * from `upload_file`"""
            cursor.execute(sql)
            rows = cursor.fetchall()
            print(rows)

单记录查询

python 复制代码
    def select(self, pk):
        with conn.cursor() as cursor:
            sql = """ SELECT * from `upload_file` where id=%d""" % pk
            cursor.execute(sql)
            rows = cursor.fetchone()
            print(rows)
相关推荐
Sagittarius_A*1 分钟前
特征检测:SIFT 与 SURF(尺度不变 / 加速稳健特征)【计算机视觉】
图像处理·人工智能·python·opencv·计算机视觉·surf·sift
AllData公司负责人10 分钟前
AllData数据中台-数据同步平台【Seatunnel-Web】整库同步MySQL同步Doris能力演示
大数据·数据库·mysql·开源
像风一样的男人@15 分钟前
python --读取psd文件
开发语言·python·深度学习
加油,小猿猿17 分钟前
Java开发日志-双数据库事务问题
java·开发语言·数据库
薛定谔的猫喵喵23 分钟前
天然气压力能利用系统综合性评价平台:基于Python和PyQt5的AHP与模糊综合评价集成应用
开发语言·python·qt
yuluo_YX28 分钟前
Reactive 编程 - Java Reactor
java·python·apache
独好紫罗兰35 分钟前
对python的再认识-基于数据结构进行-a004-列表-实用事务
开发语言·数据结构·python
ZH154558913137 分钟前
Flutter for OpenHarmony Python学习助手实战:模块与包管理的实现
python·学习·flutter
山岚的运维笔记41 分钟前
SQL Server笔记 -- 第20章:TRY/CATCH
java·数据库·笔记·sql·microsoft·sqlserver
Gain_chance44 分钟前
33-学习笔记尚硅谷数仓搭建-DWS层交易域用户粒度订单表分析及设计代码
数据库·数据仓库·hive·笔记·学习·datagrip