写点什么

【编程实践】详解 MySQL 在 Python 中的使用(2)-pymysql 的使用

作者:迷彩
  • 2022 年 9 月 28 日
    广东
  • 本文字数:2616 字

    阅读完需:约 9 分钟

前言

我们在上一篇文章《【编程实践】详解 MySQL 在 Python 中的使用(1)》中,介绍了 mysql 的相关知识以及基本操作,本文我们进入正题,接着介绍 MySQL 在 Python 中的基本操作


MySQL 安装

由于大家大都使用的是 windows 系统,所以这里仅介绍关于 MySQL 在 windows 系统上的安装,需要了解 MySQL 在 Linux 系统的安装可以参考《【值得收藏】Centos7 安装 mysql 完整操作命令

下载 MySQL

下载地址:https://dev.mysql.com/downloads/windows/installer/

根据自己的 windows 版本,选择下载合适的版本


推荐选择下载离线安装包,点击 download 按钮跳转到下图页面,然后接着选择不登录下载


然后双击下载好的进行安装

勾选同意,然后点击 next,进入下一步


进入类型选择页面,需要安装 mysql 云服务就选择了 developer default,如果只想安装 mysql server 的就选择 custom 模式,这里选择 custom 模式,进入选择页面

  • developer default(开发者默认):安装 mysql 开发所需的所有产品

  • server only(服务器):只安装 mysql 服务器产品

  • client only(客户端):只安装没有服务器的 mysql 客户端产品

  • full(完全):安装所有包含的 mysql 产品和功能

  • custom(手动):手动选择系统上应安装的产品


然后接着一直 next 即可,直到安装完成,在这个过程中需要设置 root 密码,设置完成后一定要记住,后面会用到

安装过程中到了这个页面,记得勾选,并设置 MySQL 的服务名称。把 mysql 加入系统服务,这样才能开机自启


安装完成后需要检测 root 密码,才能进行后续操作

安装完成后,将 MySQL 配置到环境变量

下图中 D:\wamp\bin\mysql\mysql5.6.17 是我的安装路径,你需要找到你的 mysql 安装路径,然后

我的电脑右键-》属性-》高级系统设置-》环境变量-》新建 MYSQL_HOME,将安装目录输入:




接着找到系统环境变量中的 path 编辑:输入 %MYSQL_HOME%\bin

然后点确定保存,这样就完成了 MySQL 的安装及简单配置,你可以安装 Navicat 来可视化管理和操作你的 MySQL


PyMysql 的使用

PyMySQL 是在 Python 3.x 中用于连接 MySQL 服务器的一- 个库,可使用 pip install 进行安装。安装命令如下:

pip install PyMySQLpip3 install PyMySQL
复制代码



PyMySQL 基本使用流程如下:

(1)创建连接:使用 connect( )创建连接并获取 Connection 对象。

(2)交互操作:获取 Connection 对 象的 Cursor 对象,然后使用 Cursor 对象的各种方法与数据库进行交互。

(3)关闭连接:在进行数据库连接时,需要传入许多参数,连接数据库常用的参数如下:

host:数据库服务器地址,默认为 localhost

user:数据库用户名,默认为当前程序运行用户

password:登录密码,默认为空字符串

database:操作的数据库

port:数据库端口,默认 3306

bind_address:当客户端有多个网络接口时,指定连接到主机的接口,参数可以是主机名或 IP 地址

unix_socket:unix 套接字地址,区别于 host

read_timeout:读取数据超时时间,单位秒,默认无限制

write_timeout:写入数据超时时间,单位秒,默认无限制

charset:数据库编码

sql_mode:指定默认的 SQL_MODE

cursorclass:设置默认的游标类型


编程实践

mysql 最常用的操作就是增、删、改、查,也是就大家口中的 CURD,不管是任何项目,只要使用了数据库基本围绕这些操作来编写业务,下面我们使用 pymysql 模块来浅尝一下 MySQL 在 Python 中的相关操作

程序流程如下:

  1. 使用 import 导入 PyMysql 模块,再使用 PyMysql 中的函数进行数据库的连接

  2. 使用在 MySQL 中创建数据库

  3. 使用 insert()方法在表中插入一个新的记录,当在数据库中插入多行数据时,则使用 insert_many()方法对其进行处理,将单对象处理转换为多对象处理,以此完成批量插入数据

  4. 对创建的数据库与表进行增,删,改,查的操作

  5. 对相关操作输出相应的结果


代码实现

1.导入 pymysql 创建数据库连接

import pymysql#获取对象,导入数据库def get_conn():    conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='demo')    return conn
复制代码

demo 数据库中有一个 student 表,表的结构和数据如下图:


2.连接数据库,定义插入方法,实现插入一条数据

def insert(sql):    conn = get_conn()    cur = conn.cursor()    result = cur.execute(sql)    print(result)    conn.commit()    cur.close()    conn.close()    if __name__ == '__main__':    sql = 'INSERT INTO student (name, age, grade) VALUES(\'李白\',12, 100);'    insert(sql)
复制代码

执行结果:

插入一条数据返回插入成功条数 1


3.定义批量插入数据的方法:insert_many()

def insert_many(sql, args):    conn = get_conn()    cur = conn.cursor()    result = cur.executemany(query=sql, args=args)    print(result)    conn.commit()    cur.close()    conn.close()    if __name__ == '__main__':    sql = 'insert into student (name, age, grade) VALUES (%s,%s,%s);'    args = [( '鲁班', 11, 88), ('赵云', 12, 89), ('曹操', 13, 99)]    insert_many(sql=sql, args=args)
复制代码

执行结果:成功插入 3 条数据,返回 3


4.修改表中数据,定义 update()方法

def update(sql,args):    conn = get_conn()    cur = conn.cursor()    result = cur.execute(sql, args)    print(result)    conn.commit()    cur.close()    conn.close()

if __name__ == '__main__': sql = 'UPDATE student SET NAME=%s WHERE id = %s;' args = ('李白', 2) update(sql, args)
复制代码

将原来的名字改为李白

5.删除表中数据,定义 delete()方法

def delete(sql,args):    conn = get_conn()    cur = conn.cursor()    result = cur.execute(sql, args)    print(result)    conn.commit()    cur.close()    conn.close()

if __name__ == '__main__': sql = 'DELETE FROM student WHERE id = %s;' args = (2,) delete(sql, args)
复制代码

删除 id=2 的数据:


6.定义 query()方法查询表中的数据

def query(sql,args):    conn = get_conn()    cur = conn.cursor()    cur.execute(sql,args)    results = cur.fetchall()    print(type(results))
for row in results: print(row) id = row[0] name = row[1] age = row[2] print('id: ' + str(id) + ' name: ' + name + ' age: ' + str(age)) pass
conn.commit() cur.close() conn.close()

if __name__ == '__main__': sql = 'SELECT * FROM student;' query(sql, None)
复制代码

执行结果如下:

使用 PyMySQL 实现 MySQL 的增删改查就是这么简单,赶紧动手实践起来吧!

发布于: 刚刚阅读数: 5
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020.06.18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【编程实践】详解 MySQL 在 Python 中的使用(2)-pymysql的使用_MySQL 数据库_迷彩_InfoQ写作社区